Динамическое отключение полей формы в MVC 3 с помощью Razor - PullRequest
1 голос
/ 22 сентября 2011

У меня есть большая форма в представлении Razor, и я хочу отключить определенные элементы формы в зависимости от состояния объекта модели, который я передаю. Поэтому необходимо определить некоторую логику, чтобы определить, показывать ли этот элемент, сделать только для чтения или сделать его редактируемым.

Мое текущее мышление побуждает меня определить некоторые Razor @ helper's с логикой, хотя я не уверен, что это лучший способ сделать это. Вроде как ...

@helper determineElementStatus(string modelProperty)
{
  if (modelProperty == someState) {
    @Html.TextBoxFor....etc
  }
}

@determineElementStatus(model.someProperty)

На самом деле, я не уверен, что это правильное место. Это является логикой представления в том факте, что оно меняет внешний вид формы, но лучше ли это в другом месте и как? Помощь будет оценена.

1 Ответ

5 голосов
/ 22 сентября 2011

В представлении вы можете контролировать логику изменения CSS. например В зависимости от значения значений модели я создаю displayMode и применяю его к Html.

  @{
        string isInherited = Model.IsInheritedValue ? "editor-field inherColor" : "editor-field";
        object displayMode = Model.IsDisabled ? new { @disabled = "disabled", @class = isInherited } : (object)new { @class = isInherited };
    }

Так что теперь, когда вы показываете

@Html.TextBoxFor(x => x.Value, displayMode)

displayMode определит, как его показать. надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...