2016-02-24 3 views
0

Я попробовал несколько ответов, размещенных в stackoverflow. Однако, следующее не похоже на работу:Razor view- C# - Отключить текстовое поле только для чтения

@Html.TextArea("Comments", Model.Comments, Model.ReadOnly ? new { @disabled = "disabled"} : null) 

Я также попытался:

@Html.TextArea("Comments", Model.Comments, Model.ReadOnly ? new { disabled = "disabled"} : null) 

Любая идея, что я делаю неправильно?

+0

Вы читали мой вопрос? Я уже пробовал это – user5975648

+0

Вы не указали, на какие ответы вы уже посмотрели, я никак не мог знать, видели ли вы это раньше или нет. –

+0

Извините, это моя ошибка. Спасибо за указание – user5975648

ответ

0

Я хотел бы использовать пользовательскую переменную, чтобы установить его. Я не думаю, что условное допустимо в аргументах HtmlHelper.

@{ 
    var htmlAttributes = Model.ReadOnly ? new { disabled = "disabled" } : null; 
} 

@Html.TextArea("Comments", Model.Comments, htmlAttributes) 
+0

Я собираюсь попробовать это! Любая идея, если я могу добавить аналогичные параметры для ОБОИХ истинных и ложных условий? Не упоминая об этом как в – user5975648

+0

Пока результат действительный набор атрибутов, вы должны быть в состоянии построить его таким образом. –

0

Я не думаю, что MVC любит null здесь. Что вам нужно в качестве третьего параметра (который ожидает object) является по умолчанию пустой анонимный экземпляр вместо null:

Model.ReadOnly ? (object)new { disabled = "disabled" } : (object)new { } 
0

Попробуйте обертывание ваш троичной операцию в скобках

@Html.TextArea("Comments", Model.Comments, (Model.ReadOnly ? new { @disabled = "disabled"} : null)) 
Смежные вопросы