Dot-Net

使用 Html.TextBoxFor 時可以將文本框設置為只讀嗎?

  • March 29, 2010

我有以下帶有 Html.TextBoxFor 表達式的標籤,我希望內容是只讀的,這可能嗎?

<%= Html.TextBoxFor(m => Model.Events.Subscribed[i].Action)%>

根據@1c1cle 在評論中的建議更新了現代版本的 .NET:

<%= Html.TextBoxFor(model => Model.SomeFieldName, new {{"readonly", "true"}}) %>

請意識到這不是一種“安全”的方式來做到這一點,因為有人可以注入 javascript 來改變這一點。

需要注意的是,如果您將該readonly值設置為false,您實際上不會看到任何行為變化!因此,如果您需要基於變數來驅動它,您不能簡單地將變數插入其中。相反,您需要使用條件邏輯來簡單地不傳遞該readonly屬性。

這是一個未經測試的關於如何執行此操作的建議(如果有問題,您可以隨時執行 if/else):

<%= Html.TextBoxFor(model => Model.SomeFieldName, shouldBeReadOnlyBoolean ? new {{"readonly", "true"}} : null) %>
<%= Html.TextBoxFor(m => Model.Events.Subscribed[i].Action, new { @readonly = true })%>

引用自:https://stackoverflow.com/questions/2539069