繁体   English   中英

asp.net mvc 3剃刀更改视图中的模型值

[英]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)

另请参见是否有人为ASP.NET MVC实现RadioButtonListFor <T>?

也许您可以使用如下方式:

@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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM