私は私のasp.net mvc webアプリケーション内に次のものを持っています:
<div><span class="f">Data Center Name</span> @Html.EditorFor(model => model.Switch.TMSRack.DataCenter.Name, new { disabled = "disabled" })</div>
しかし、フィールドは無効になりません、誰でもお願いできますか?サンクス
@Html.EditorFor()
には、htmlAttributesをサポートするオーバーロードがありません。 @Html.TextBoxFor()
を試すことができます
@Html.TextBoxFor(model => model.propertyName, new {disabled= "disabled" })
HtmlAttributesでclass
などのシステムキーワードを使用している場合は、@
属性名の前。
例:
@Html.TextBoxFor(model => model.propertyName, new {@class = "disabledClass" })
MVC 5を使用すると、@Html.EditorFor()
はhtmlAttributesをサポートします
@Html.EditorFor(model => model.x, new { htmlAttributes = new { @class = "form-control", @disabled = "disabled" } })
上記の例は、クラスとdisabled属性を追加する方法を示しています
別の代替方法:EditorForをdivまたは特定のIDのスパンで囲み、jquery/jsを少し使用します。
<span id="editors">
@Html.EditorFor(x => x.ViewModelProperty)
</span>
<!-- Disable above editors. EditorFor doesn't allow html attributes unfortunately. -->
<script type="text/javascript">
$(function () { $('#editors :input').attr("disabled", true); });
</script>
EditorFor()
を使用することもできます。例:
@Html.EditorFor(model => model.Nama, new { htmlAttributes = new { @disabled ="true", @class = "form-control" } })
編集変更を受け入れたときに情報が失われた場合...試すことができます
<h3>@Model.x</h3>
@Html.HiddenFor(model => model.x, new { htmlAttributes = new { @class = "form-control" } })