0

我有一个显示“是”和“否”的下拉列表。如果我从下拉列表中选择是,则 1 应保存到数据库。如果我选​​择否,则应保存 0。如果我从创建页面的下拉列表中选择是,则应显示在索引页面中是,但保存的值应为 1

型号为:

public class State
{
    [Key]
    public int StateID { get; set; }       
    public string Code { get; set; }        
    public string Description { get; set; }
    public int Active { get; set; }  
}

创建.cshtml

 <div class="editor-field">
        @Html.DropDownListFor(model => model.Active,new[]{new SelectListItem() {Text="Yes",Value="1"},
                                                            new SelectListItem(){Text="No",Value="0"}})
        @Html.ValidationMessageFor(model => model.Active)

索引.cshtml:

   <td>
     @Html.DisplayFor(modelItem => item.Active)
    </td>

我得到了下拉列表,其中包含值是和否,它相应地存储了 1 和 0。但是在索引页面中,它显示的是 1 和 0 而不是是和否...请帮助...

4

2 回答 2

0

尝试这个

@Html.DisplayFor(modelItem =>item.Active ==0 ? "是":"否")

于 2013-04-08T18:02:16.687 回答
0

原因是,它显示的是您正在保存的整数值(0 或 1)。要显示“是”或“否”,您需要将值转换回字符串并将其传递给您的视图模型。理想情况下,您应该为索引页面创建一个视图模型。

public class IndexViewModel
{

    public string Active {get;set;}

    ...

}

你的控制器逻辑

if(Active == 0)
    active = "No"
 else
    active = "Yes"

return(new IndexViewModel 
{
   Active = active 
   ...
}

希望这可以帮助

于 2013-01-29T11:40:50.727 回答