Asp.net
ASP.NET MVC - 使用模型中的布爾值禁用 Html Helper 控制項
我正在使用 Html 助手將文本框輸出到頁面。我想根據模型中的布爾值是真還是假來動態添加 disabled 屬性。
我的模型有一個返回布爾值的方法:
<% =Model.IsMyTextboxEnabled() %>我目前呈現如下文本框,但我現在想啟用或禁用它:
<% =Html.TextBox("MyTextbox", Model.MyValuenew { id = "MyTextbox", @class = "MyClass" })%>如果 Model.IsMyTextboxEnabled() == true的返回值,我希望輸出以下內容:
<input class="MyClass" id="MyTextbox" name="MyTextbox" type="text" value="" />如果它 == false,我希望它輸出為:
<input class="MyClass" id="MyTextbox" name="MyTextbox" type="text" value="" disabled />最乾淨的方法是什麼?
這應該可以解決問題:
<%= Html.TextBox("MyTextbox", Model.MyValuenew, (Model.IsMyTextboxEnabled() ? (object) new {id = "MyTextbox", @class = "MyClass"} : (object) new {id = "MyTextbox", @class = "MyClass", disabled="true" })) %>
在您的助手中,您是否會在生成 html 時檢查程式碼,它只是檢查 bool,然後添加 disabled 屬性或將其排除在外?
這是一個簡單的例子,結構不是很好,但是……
if (disabled) return string.Format(CultureInfo.InvariantCulture, "<input type=text disabled/>", new object[] { HttpUtility.HtmlAttributeEncode(s), myTextBox });這是你問的嗎?
編輯:
等等,我現在明白了。我認為您需要創建自己的幫助程序或擴展 MVC 文本框幫助程序,以便您可以做到。
要麼,要麼我認為你可以做類似的事情;
<%= Html.TextBox("mytextbox","", new { disabled="true" } %>以上內容未經測試,但類似的東西應該可以工作。
編輯2:
<% if (condition) {%> <%= Html.TextBox("mytextbox", "", new {@readonly="readonly"}) %> <%} else {%> <%= Html.TextBox("mytextbox", "") %> <%}