2017-02-13 23 views
0

Применение традиционного синтаксиса Razor к textarea с приложенным к нему тегом asp-forRequiredAttribute, применяемым в модели представления) мешает друг другу.Помощники тегов, похоже, мешают традиционному синтаксису Razor

@{ string disabled = "disabled"; } 
<textarea asp-for="Motivation" class="form-control" rows="3" @disabled></textarea> 

Атрибут disabled не применяется.

<textarea 
    class="form-control" rows="3" 
    data-val="true" data-val-required="..." 
    id="Motivation" name="Motivation" placeholder="..."> 
</textarea> 

Я могу понять, что-то должно идти неправильно (или не поддерживается), так как asp-for потребности быть переписаны атрибутам соответствия, полученные из модели представления.

Мои основные вопросы:

  1. Является ли это документально/ожидаемое поведение?
  2. Что такое «ASP.NET», чтобы перейти к аналогичным модификациям вывода HTML?
+0

Я не пробовал, но я бы ожидал, что вам нужно следовать подходу 'attr =" value ". Так что-то вроде 'disabled =" @ disabled "'. –

+0

@PeterB Интересно, что это работает! Кроме того, [не минимизированная версия требуется в XHTML, похоже,] (http://www.w3schools.com/tags/att_input_disabled.asp). Тем не менее, я не верю, что 'disabled =" "или' disabled = "enabled" 'действительно, поэтому он не решает эту проблему. –

+0

Когда '@ disabled' вместо этого установлено' disabled = \ "disabled \", весь атрибут снова опущен. –

ответ

0

Я только начинаю с ASP.NET, поэтому не уверен, что касается первого вопроса: «Является ли это документированным/ожидаемым поведением?» Это, таким образом, лишь частичный ответ, и я ищу дополнительную информацию по первому вопросу.

Однако, чтобы ответить на второй вопрос, одна возможности, кажется, полагаться на (старше ?) HTML хелперов, которые предлагают большую гибкость:

@{ string disabled = "disabled"; } 
@Html.TextAreaFor(
    m => m.Motivation, 
    new { @class = "form-control", rows = 3, disabled = disabled }) 

Вторых параметры являются дополнительными атрибутами, которые применяются к выход textarea.

Кроме того, следует отметить, что в XHTML attribute minimization is forbidden.

В XHTML, атрибут минимизации запрещено, и инвалидов атрибут должен быть определен как <input disabled="disabled" />.

Возможно, я не могу найти официальную документацию по этому вопросу.