Ниже будет работать, потому что есть только один HTML атрибут
@Html.TextBoxFor(m => m.EntryDate, (_new || _modify)
? new { @disabled = "disabled" }
: null)
Однако, как только вы добавляете атрибут стиля, это вызовет ошибку, потому что нет неявного преобразования не будет твин и new { @Style="width:90px;" }
, так что вы должны сделать это в if
блоке
@if(_new || _modify) {
@Html.TextBoxFor(m => m.EntryDate, new { @disabled = "disabled", style="width:90px;")}
} else {
@Html.TextBoxFor(m => m.EntryDate, new { style="width:90px;" })
}
Редактировать
Кастинг HTML-словарь для object
, кажется, работает, но я не полностью протестированы это (и я не уверен, что его "простой и элегантный способ, чтобы он")
@Html.TextBoxFor(m => m.EntryDate, (_new || _modify)
? (object)new { @disabled = "disabled", style="width:90px;" }
: (object)new { style="width:90px;" })
Cant вы просто использовать @if (comeCondition) {@ Html.TextBo xFor (model => model.EntryDate)} else {@ Html.TextBoxFor (model => model.EntryDate, new {@disabled = "disabled")} –
Ну, я надеялся, что есть простой и элегантный способ для него – POIR
ОК, опубликует ответ –