2013-12-18 3 views
1

Когда я использую TextAreaFor помощник в MVC, и я определить строки следующим образом:Почему свойство TextAreaFor helper не задает атрибут html rows правильно?

@Html.TextAreaFor(model => model.Notes, 5) 

Количество строк в этой области текста не установлен означает размер текстовой области не влияет на всех. Однако, если я использую htmlAttributes для определения строк:

@Html.TextAreaFor(model => model.Notes, new { rows = 5 }) 

тогда он отлично работает. Итак, мой вопрос в том, что такое свойство rows в помощнике TextAreaFor, для которого не нужно определять атрибут HTML строк в текстовом поле? Что мне здесь не хватает?

ответ

3

Нет такой перегрузки, как ваш первый пример. Вы можете попробовать this перегрузки

public static MvcHtmlString TextAreaFor<TModel, TProperty>(
    this HtmlHelper<TModel> htmlHelper, 
    Expression<Func<TModel, TProperty>> expression, 
    int rows, 
    int columns, 
    Object htmlAttributes 
) 

Так что ваш пример должен быть, как этот

@Html.TextAreaFor(model => model.Notes,5,10, new { @class= "myCssClassName" }) 

Для Вашего второго примера, вы используете the overload в правильном пути.

+0

Итак, вы говорите, что мне нужно определить все эти другие параметры - они не являются необязательными? – Marko

+0

Вы можете просто использовать свой второй подход (только предоставить атрибуты html). Вы можете использовать разные перегрузки, исходя из ваших требований. В этом случае, если вы просто хотите указать строки и столбцы, просто используйте любой из вышеперечисленных. – Shyju

+0

@ RaphaëlAlthaus Это то, что он использует в своем втором примере, и он отлично работает. – Shyju

Смежные вопросы