Подтвердить что ты не робот

Как сделать @Html.EditorFor Disabled

У меня есть следующее внутри моего веб-приложения asp.net mvc: -

<div><span class="f">Data Center Name</span> @Html.EditorFor(model => model.Switch.TMSRack.DataCenter.Name, new  { disabled = "disabled" })</div>

но поле не будет отключено, может ли кто-нибудь прислушаться? БЛАГОДАРЯ

4b9b3361

Ответ 1

@Html.EditorFor() не имеет перегрузки для поддержки htmlAttributes. Вы можете попробовать @Html.TextBoxFor()

@Html.TextBoxFor(model => model.propertyName, new {disabled= "disabled" })

Если вы используете ключевые слова системы, такие как class в htmlAttributes, добавьте @ перед именем атрибута.

Пример:

@Html.TextBoxFor(model => model.propertyName, new {@class = "disabledClass" })

Ответ 2

Использование MVC 5, @Html.EditorFor() поддерживает htmlAttributes

@Html.EditorFor(model => model.x, new { htmlAttributes = new { @class = "form-control", @disabled = "disabled" } })

В приведенном выше примере показано, как вы можете добавить класс, а также отключенный атрибут

Ответ 3

Другая альтернатива: окружите EditorFor с помощью div или span с определенным идентификатором, а затем используйте немного 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>

Ответ 4

Если вы теряете информацию, когда принимаете изменения Edit-changes... Вы можете попробовать

<h3>@Model.x</h3>
@Html.HiddenFor(model => model.x, new { htmlAttributes = new { @class = "form-control" } })

Ответ 5

Вы также можете использовать EditorFor() например:

@Html.EditorFor(model => model.Nama, new { htmlAttributes = new { @disabled ="true", @class = "form-control" } })

Ответ 6

Вместо добавления класса просто используйте это:

@Html.EditorFor(model => model.name, new { htmlAttributes = new { disabled = "disabled" } })