我有bool属性IsMale的模型。在视图中我有值表,我可以如何改变价值?
我试过了:
<td>
@if (item.IsMale == true)
{
@Html.DisplayFor(modelItem => "Male")
}
else
{
@Html.DisplayFor(modelItem => "Female")
}
</td>
但我得到错误:
Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.
在创建视图中我如何制作单选按钮&gt;男&gt;女性并将其以bool形式返回?
答案 0 :(得分:2)
<td>
@Html.Display(item.IsMale ? "Male" : "Female" )
</td>
答案 1 :(得分:2)
@Html.DisplayFor
获取模型的属性并输出该属性的值。你要做的是打印一个硬编码的字符串。您不需要DisplayFor
。试试吧:
<td>
@if (item.IsMale)
{
<text>Male</text>
}
else
{
<text>Female</text>
}
</td>
如果不将性别设为布尔值,则更好的设计。您可能希望添加“未指定”或以后的任何内容。如果你把性别作为“第一类”实体,那么名字“男性”与“女性”以及单选按钮不一定是硬编码的:
假设您有一个名为“Gender”的类,其属性为“Name”。然后,您的modelItem将具有属性“Gender”,其类型为“Gender”。
<td>@Html.DisplayFor(modelItem => modelItem.Gender.Name)</td>
对于无线电,您可以从数据源中检索可用性别的完整列表,并将它们作为RadioButtonList放入ViewModel中。然后你可以简单地使用:
@Html.RadioButtonListFor(modelItem => modelItem.AllGenders)
另见Has anyone implement RadioButtonListFor<T> for ASP.NET MVC?
答案 2 :(得分:1)
也许你可以使用这样的东西:
@Html.CheckBoxFor(model => model.IsMale)
我看到它是你想要的单选按钮......
@Html.RadioButtonFor(model => model.IsMale, true)
@Html.RadioButtonFor(model => model.IsMale, false)