2017-08-10 85 views
1

我試圖禁用屬性添加到通過@html輔助函數生成的HTML,但似乎無法得到的東西的工作,在HTML輔助的ATTRIB參數工作。我下面有什麼仍然會寫入禁用的HTML ...但我不能刪除它,因爲那麼幫手不工作。有條件的HTML屬性使用剃刀@html助手

我有定義的變量:

@{ var displayItem = (Model.TypeId == 100) } 

@Html.TextBox("listitem", "", new {@class = "form-control", @disabled = (@displayItem ? "" : "disabled")}) 

但因爲我有列出@disabled參數,產生HTML這樣的:

<input class="form-control" disabled="" id="listitem" name="listitem" type="text" value="" /> 

因爲禁用列出它禁止輸入。但是,除非我給它一個參數名稱,否則html helper不起作用。

如何寫殘疾人在參數列表,以便禁用不顯示在所有如果它不應該被禁用?

回答

1

您可以使用

@{ var displayItem = (Model.TypeId == 100) } 
@Html.TextBox("listitem", "", displayItem ? (object)new { @class = "form-control", disabled = "disabled" } : (object)new { @class = "form-control"}); 

@{ 
    var attributes = Model.TypeId == 100 ? (object)new { @class = "form-control", disabled = "disabled" } : (object)new { @class = "form-control"}); 
} 
@Html.TextBox("listitem", "", attributes) 

或簡單if

@(if Model.TypeId == 100) 
{ 
    @Html.TextBox("listitem", "", new {@class = "form-control", disabled = "disabled" }) 
} 
else 
{ 
    @Html.TextBox("listitem", "", new {@class = "form-control" }) 
} 

注意,禁用的控件的值不會被提交,所以readonly屬性可以更合適

+0

好吧,我想知道,如果有一些其他的把戲做的屬性參數的建設,但我想不會。 TX。 – user1161137