0

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

@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 为假,反之亦然)

这是不正确的:

来自 html 文档:

required 属性是一个布尔属性,可以通过以下方式设置:

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

注意:我使用的是 Razor 2.0

难道我做错了什么?

4

1 回答 1

0

在这些特殊情况下,Mvc 使用布尔值(假设所需的工作如选中)。尝试这个:

required="@Model.IsRequired"

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

于 2012-10-31T17:45:05.790 回答