0
我正在一個頁面上,我想添加類到控件基於條件。我嘗試了下面的代碼,但是當我在cshtml文件中添加動態類名時,它以錯誤的方式渲染。任何建議?asp.net mvc剃刀變量不正確設置
object TitleClass = (Model.Id != 0 && Model.IsApproved) ?
(object)new { @disabled = "disabled", @class = "headerBox" } : new{ @class = "headerBox"};
<div>
@Html.TextBoxFor(model => model.Title, new { @placeholder = "New Title", TitleClass })
@Html.ValidationMessageFor(model => model.Title)
</div>
呈現爲
<input name="Title" id="Title" type="text" placeholder="New Demand Title" value="cpx appr with orders" data-val-required="Enter Demand Title" data-val="true" titleclass="{ disabled = disabled, class = headerBox }">
試圖使它呈現爲
<input name="Title" id="Title" type="text" placeholder="New Demand Title" value="cpx appr with orders" data-val-required="Enter Demand Title" data-val="true" disabled = disabled class = headerBox >
當我使用禁用=禁用時控制器中的getrid null值的任何替代? – Kurkula
你可以使用'readonly =「只讀」'所以它不能被改變(並且你總是可以使用'css'來設置它看起來像一個被禁用的控件,如果需要的話) –
我認爲最好的解決方案是不要設置輸入爲禁用/從Razor視圖中只讀,但使用Javascript來完成,例如將Model.IsApproved保存在隱藏字段中並讀取隱藏字段值。這樣你就不會改變這個觀點 – Catalin