TextBoxFor в EditorTemplate или DisplayTemplate - PullRequest
2 голосов
/ 08 сентября 2011

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

<%= Html.TextBoxFor(x => x, new { @class = "TextBoxFor" } ) %>  


.TextBoxFor
{
    height:30px;
    width:250px; 
    font-family:@Batang;   
    font-size:20px; 
    font-weight: bold;
}

Можно ли поместить <%= Html.TextBoxFor("", new { @class = "TextBoxFor" } ) %> где-нибудь в EditorTemplate / DisplayTemplate, а в других местах, которые мы просто называем вот так

<%= Html.TextBoxFor(x => x) %> 

Это означает, что мы не указываем имя класса css. Так что это легко поддерживать. Есть идеи. Спасибо

Обновление, я создал статический помощник, но он имеет ошибки ..

public static MvcHtmlString CustomTextBoxFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, object htmlAttributes) 
{ 
  return htmlHelper.CustomTextBoxFor<TModel, TProperty>(expression, new { @class = "TextBoxFor" }); 

}



<%: Html.CustomTextBoxFor(m => m.Name) %> 

Есть идеи?

Ответы [ 2 ]

1 голос
/ 08 сентября 2011

Да, но вы также можете создать свой собственный помощник Html, а затем выполнить Html.MyTextBoxFor (...).

Проверьте здесь примеры

Вы можете загрузить файл MVC3Futures , и он включает в себя Templatized версии шаблонов по умолчанию, которые можно поместитьтвоя папкаВы можете редактировать их, чтобы настроить TextBox для используемого.Однако вы должны использовать @Html.EditorFor(...) в своем представлении, а не TextBoxFor().Имейте в виду, что это повлияет на все виды использования EditorFor в области, в которой установлены шаблоны.

Кстати, если вы используете MVC3, я настоятельно рекомендую использовать механизм Razor, а не механизм WinForms.Он меньше печатает, и он более эффективен, и в нем есть функции, которые вы не получите в WinForms ... и это препятствует мышлению WinForms.

0 голосов
/ 08 сентября 2011

Если вы хотите применить стиль для всех полей ввода текста, вы можете изменить стиль CSS, который поставляется с шаблоном MVC.

input[type="text"]
{
    border: 1px solid #ccc;
    padding: 2px;
    font-size: 1.2em;
    color: #444;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...