Asp.net mvc 定义从数据库检索的整数值

Asp.net mvc 定义从数据库检索的整数值,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,在我的数据库中,我使用的数据格式为1表示男性,2表示女性,3表示未定义的性别。如何在我的视图中分配这些值,即1个显示为男性,2个显示为女性,3个显示为未定义?可以从sql代码执行此操作,但如何从视图或控制器执行此操作 我还想突出显示未定义性别的行。我该怎么做 控制器块 public ActionResult Display() { return View(db.P_GET_USER().ToList()); } 视

在我的数据库中,我使用的数据格式为1表示男性,2表示女性,3表示未定义的性别。如何在我的视图中分配这些值,即1个显示为男性,2个显示为女性,3个显示为未定义?可以从sql代码执行此操作,但如何从视图或控制器执行此操作

我还想突出显示未定义性别的行。我该怎么做

控制器块

public ActionResult Display()
        {            
            return View(db.P_GET_USER().ToList());
        }
视图块

@model IEnumerable<final.Models.P_GET_USER_Result>

@{
    ViewBag.Title = "Display";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Display</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.USERNAME)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.NAME)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.GENDER)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.STATUS)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.CREATED_DATE)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.USERNAME)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.NAME)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.GENDER)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.STATUS)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.CREATED_DATE)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
            @Html.ActionLink("Details", "Details", new { id=item.Id }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.Id })
        </td>
    </tr>
}

</table>
@model IEnumerable
@{
ViewBag.Title=“显示”;
Layout=“~/Views/Shared/_Layout.cshtml”;
}
展示

@ActionLink(“新建”、“创建”)

@DisplayNameFor(model=>model.USERNAME) @DisplayNameFor(model=>model.NAME) @DisplayNameFor(model=>model.GENDER) @DisplayNameFor(model=>model.STATUS) @DisplayNameFor(model=>model.CREATED\u日期) @foreach(模型中的var项目){ @DisplayFor(modelItem=>item.USERNAME) @DisplayFor(modelItem=>item.NAME) @DisplayFor(modeleItem=>item.GENDER) @DisplayFor(modelItem=>item.STATUS) @DisplayFor(modelItem=>item.CREATED\u日期) @ActionLink(“编辑”,“编辑”,新的{id=item.id})| @ActionLink(“详细信息”,“详细信息”,新的{id=item.id})| @ActionLink(“删除”,“删除”,新的{id=item.id}) }
一种快速脏方法是将条件代码放在您的视图中。另一种方法是在视图中添加帮助器方法:

@helper GetGender(int gender)
{
   string genderText = "";
    switch (gender)
    {
      case 1:
        genderText = "Male";
        break;
      case 2:
        genderText = "Female";
      case 3:
        genderText = "Undefined";
        break;
      default;
        break;

     return genderText;
   }

}
然后像这样使用它:

<td>
   @GetGender(item.Gender)
</td>

@GetGender(项目.性别)
更好的做法是将其移动到某个公共位置,并在需要的每个视图中重用它


比上述更好的方法是使用一个视图模型,该模型根据视图中的
Gender
属性值返回受尊重的文本,并且该视图将使用该视图模型进行强类型输入,并且只显示它。

感谢您的回答。但是,请你能给我举一些这样做的例子吗。我是MVC框架的新手。如何重用视图?在视图中的何处放置该辅助对象?我犯了一个错误。请您保留查看此帮助程序块的全部代码。谢谢你@user4221591这可能会有所帮助:使用代码
返回genderText获取错误
检测到无法访问的代码
。请帮忙!!!