mvc4中的下拉列表

时间:2013-01-29 10:01:39

标签: asp.net-mvc-3 razor asp.net-mvc-4 razor-2

我有一个显示“是”和“否”的下拉列表。如果我从下拉列表中选择是,则应将1保存到数据库。如果我选​​择否,则应保存0。如果我从创建页面的下拉列表中选择是,它应该在索引页面中显示yes,但保存的值应为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; }  
}

Create.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)

Index.cshtml:

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

我得到了值为yes和no的下拉列表,它相应地存储了1和0。但是在Index页面中它是显示1和0而不是是和否... 请帮忙...         

2 个答案:

答案 0 :(得分:0)

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

public class IndexViewModel
{

    public string Active {get;set;}

    ...

}

您的控制器逻辑

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

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

希望这有帮助

答案 1 :(得分:0)

试试这个

@ Html.DisplayFor(modelItem =&gt; item.Active == 0?“是”:“否”)