Включение и отключение текстового поля в виде бритвы (ASP.Net MVC 3) - PullRequest
16 голосов
/ 06 июля 2011

Я хочу включить или отключить текстовое поле на основе значения (Model.CompanyNameEnabled).

Код ниже не работает. Пожалуйста, исправьте.

@{
    string displayMode = (Model.CompanyNameEnabled) ? "" : "disabled = disabled";
    @Html.TextBox("CompanyName", "", new { displayMode })
}

Ответы [ 4 ]

34 голосов
/ 06 июля 2011
@{
   object displayMode = (Model.CompanyNameEnabled) ? null : new {disabled = "disabled" };
   @Html.TextBox("CompanyName", "", displayMode)
}

Вы должны передать htmlAttribute как анонимный объект с именами свойств = именами атрибутов html, значениями свойств = значениями атрибутов.Ваша ошибка состояла в том, что вы передавали строку вместо пары имя = значение

7 голосов
/ 16 июля 2013

<input id="textbox1" type="text" @{@((Model.CompanyNameEnabled) ? null : new { disabled = "disabled" })}; />

Не проверял, но должен работать

2 голосов
/ 09 августа 2018

Простой подход:

@Html.TextBoxFor(x => x.Phone, new { disabled = "disabled", @class = "form-control" })

1 голос
/ 12 апреля 2018

Как уже упоминалось в этой теме, предлагаемый ответ больше не работает в MVC5. На самом деле есть простое двухэтапное решение этой проблемы.

  1. Назначьте класс для входных данных HTML, который вы хотите отключить / включить (идентификатор, конечно, подойдет для одного элемента). В приведенном ниже примере я назначил для входа класс «выключатель-выключатель» .
@Html.TextBox("CompanyName", "", new { htmlAttributes = new { @class = "form-control switch-disable" } })
  1. Используйте javascript (jquery), чтобы включить / отключить параметр disabled в HTML. В моем примере ниже я делаю это при загрузке страницы.
<script>
$(document).ready(() => {
    if(@Model.CompanyNameEnabled)
    {
        $('.switch-disable').attr("disabled", false);
    }else{
        $('.switch-disable').attr("disabled", true);
    }
});
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...