Asp Mvc4条件属性无法按预期工作

时间:2012-10-31 16:55:02

标签: asp.net-mvc-4

我将以下部分视图绑定到视图模型。

@model Omega.UI.WebMvc.Models.InputWithLabelViewModelBase


@{
    string required = null;
}

@if (Model.IsRequired)
{
    {
    required = "required";
    }
}

<td><label id="@Model.LabelId">@Model.LabelText</label></td>
<td>
    <input  id="@Model.InputId" data-bind= "value: @Model.CurrentValueProperty" required="@required"/>
    <span class="k-invalid-msg" data-for="@Model.InputId"></span>
</td>

IsRequired为真时,我希望required attribute可用,否则不可用。当我运行该代码并且IsRequired为false时,required attribute会显示空值:required =“”。我对asp mvc很新,我不知道我做错了什么。

每只鸽子的帖子更新:

这不起作用:

@{
    bool required = Model.IsRequired;
}


<td><label id="@Model.LabelId">@Model.LabelText</label></td>
<td>
    <input  id="@Model.InputId" data-bind= "value: @Model.CurrentValueProperty" required="@required" />
    <span class="k-invalid-msg" data-for="@Model.InputId"></span>
</td> 

这将呈现以下html:

required="False"(如果IsRequired为false,反之亦然)

这是不正确的:

来自html文档:

必需属性是布尔属性,可以通过以下方式设置:

<input required>
<input required="required">
<input required="">

注意:我使用的是Razor 2.0

我做错了吗?

1 个答案:

答案 0 :(得分:0)

Mvc takes works with booleans在这些特殊情况下(假设需要的工作如检查)。试试这个:

required="@Model.IsRequired"

您是否也可以检查您的项目参考以确认您使用的是Razor 2,因为上面的示例也可以使用。右键单击System.Web.Razor查看属性并查看它是什么版本。它应该是2.0.0.0