[英]asp.net mvc 3 razor change model value in view
我的模型具有布尔属性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.
在创建视图中,我如何使单选按钮>“男”>“女”并以布尔返回?
<td>
@Html.Display(item.IsMale ? "Male" : "Female" )
</td>
@Html.DisplayFor
接受模型的属性并输出该属性的值。 您要尝试的是打印硬编码的字符串。 您不需要为此的DisplayFor
。 你试一试:
<td>
@if (item.IsMale)
{
<text>Male</text>
}
else
{
<text>Female</text>
}
</td>
如果您不将性别设为布尔值,则设计会更好。 您可能要添加“未指定”或其他内容。 如果您将性别设为“一流”实体,则不必对名称“ male”和“ female”以及单选按钮进行硬编码:
假设您有一个名为“性别”的类,其属性为“名称”。 然后,您的modelItem将具有属性“ Gender”,其对象类型为“ Gender”。
<td>@Html.DisplayFor(modelItem => modelItem.Gender.Name)</td>
对于收音机,您可以从数据源中检索可用性别的整个列表,并将它们作为RadioButtonList放入ViewModel中。 然后,您可以简单地使用:
@Html.RadioButtonListFor(modelItem => modelItem.AllGenders)
也许您可以使用如下方式:
@Html.CheckBoxFor(model => model.IsMale)
我看到这是您想要的单选按钮...
@Html.RadioButtonFor(model => model.IsMale, true)
@Html.RadioButtonFor(model => model.IsMale, false)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.