我有一个显示“是”和“否”的下拉列表。如果我从下拉列表中选择是,则应将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而不是是和否... 请帮忙...
答案 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?“是”:“否”)