我有一個EditorFor HTML幫助這樣的:禁用EditorFor
<td>@Html.EditorFor(m => m.Name, belowLevel ? disabledHtmlOptions : null)</td>
-
object disabledHtmlOptions = new { disabled = "disabled" };
我要讓每一次這種禁用。我怎麼做?我不想做數據註釋,因爲這個屬性也在其他視圖中使用。只有在這個視圖我想禁用它。
我有一個EditorFor HTML幫助這樣的:禁用EditorFor
<td>@Html.EditorFor(m => m.Name, belowLevel ? disabledHtmlOptions : null)</td>
-
object disabledHtmlOptions = new { disabled = "disabled" };
我要讓每一次這種禁用。我怎麼做?我不想做數據註釋,因爲這個屬性也在其他視圖中使用。只有在這個視圖我想禁用它。
,如果你堅持使用EditorFor
你可以設置通過jQuery頁面上的禁用屬性加載。我知道這不是理想的,但除非你創建EditorFor接受的htmlAttributes收集
$(document).ready(function() {
$('#Name').attr('disabled', 'disabled');
});
讓我看看這是否會起作用。 –
你可以只渲染視圖HTML。如果它的意思是「只讀」,只需渲染文本。否則,您可以渲染一個<input>
元素。
例如,而不是
<td>@Html.EditorFor(m => m.Name)</td>
做
<td>@Model.Name</td>
或
<td><input type="text">@Model.Name</input></td>
當我嘗試使用@ m.Name時,m在當前上下文中不存在? –
嘗試'@ Model.Name' – MisterIsaak
嘗試@ Model.Name,(打我給它@Jisaak)。更新了答案。 – contactmatt
我不相信EditorFor
方法的簽名允許你指定的任何HTML屬性的過載這是唯一的方法。但是,如果您將其更改爲TextBoxFor
,則可以。
<td>@Html.TextBoxFor(m => m.Name, belowLevel ? disabledHtmlOptions : null)</td>
MVC 5.1現在允許傳遞HTML中EditorFor (see this answer)屬性。所以你可以這樣做:
@Html.EditorFor(model => m.Name, new { htmlAttributes = new { disabled = "disabled" } })
raj,你冒險得不到一個好的答案,因爲你對問題的描述有點模糊。有沒有什麼方式與您的例子,擴大對問題和所需解決方案,或許正在擴大一點,加上背景的潛臺詞可能的話 –
@Jim,我不知道我怎麼能更準確地描述它,但是,我只需要禁用我的文本框或editorfor正在顯示名稱的框。我可以在標籤中顯示,但那不是要求。 –
拉吉 - 我認爲你的編輯剛剛幫助:) –