コントローラから取得した結果に基づいて異なるテキストを表示する際に問題が発生しています。MVCビューとコントローラでifステートメントを使用する
列command_status_code
は、表から0
〜12
の間の値を戻しています。しかし、私はコントローラから得た値に基づいて別のテキストを表示したいと思います。
つまり0
を表示したい場合はVerify
と表示したい場合は1
と表示するとActive
と表示したいと思います。
チェックをビューに追加するか、コントローラー自体で変換を行うかどうかはわかりません。ここで
は、関連するコードです:ビュー
@model List<Models.AuditLogs>
<table>
<tr>
<th>User</th>
<th>Command Status Code</th>
</tr>
@foreach (var AuditLogsDetail in Model)
{
<tr>
<td>@AuditLogsDetail.user_id</td>
<td>@AuditLogsDetail.command_status_code</td>
</tr>
}
</table>
コントローラ
public ActionResult AuditLogs() {
string connectionstring = "MY_CONNECTION_STRING";
string sql = "select * from table_name";
SqlConnection conn = new SqlConnection(connectionstring);
SqlCommand cmd = new SqlCommand(sql, conn);
var Details = new List <AuditLogs>(); {
conn.Open();
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read()) {
var AuditLogsDetail = new AuditLogs {
user_id = rdr["user_id"].ToString(),
command_status_code = rdr["command_status_code"].ToString(),
};
Details.Add(AuditLogsDetail);
}
}
return View(Details);
}
モデルビューで
public class AuditLogs
{
public string user_id { get; set; }
public string command_status_code { get; set; }
}
}
代わりにEnumを使用していないのはなぜですか? –
@CamiloTerevintoテーブル構造を変更するためのアクセス権がないので、代わりに 'string'を使って作業しています – zaq
@Camilo Terevintoに言及されている列挙型の考え方を再訪することをお勧めします。テーブル構造を変更する必要はありません。必要なintマッピングを持つ列挙型を追加し、次にモデル内でコードを列挙型にキャストします。それはスイッチよりもあまり冗長ではありません。 –