2012-10-31 87 views
0

我有以下部分視圖綁定到視圖模型。Asp Mvc4條件屬性不能按預期工作

@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爲假時,required attribute顯示爲空值:required =「」。我對asp mvc很陌生,我不明白我做錯了什麼。每dove`s後

UPDATE:

這不起作用:

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

這是不正確的:

從h TML文件:

的必要屬性是一個布爾屬性,可以通過以下方式進行設置:

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

注:我用剃刀2.0

難道我做錯了什麼?

回答

0

Mvc takes works with booleans在這些特殊情況下(假設需要檢查的作品)。試試這個:

required="@Model.IsRequired" 

你還可以檢查你的項目參考,以確認你正在使用Razor 2作爲上面的例子也應該工作。右鍵單擊System.Web.Razor查看屬性並查看它是什麼版本。它應該是2.0.0.0

相關問題