Установить класс в поле ввода asp.net автоматически - PullRequest
0 голосов
/ 11 ноября 2010

Если я использую:

<%: Html.EditorForModel() %>

Текстовые окна генерируются так:

<input type="text" value="" name="Email" id="Email" class="text-box single-line">

пс. этот метод даже не выполняет проверку.

Если я использую:

<%:Html.TextBoxFor(model => Model.Email)%>

Затем текстовое поле генерируется без класса. Как мне прикрепить класс ко всем Html.TextBoxFor() так же, как это делает выше Html.EditorForModel()?

Ответы [ 2 ]

1 голос
/ 11 ноября 2010

Вот так ... вот ссылка http://msdn.microsoft.com/en-us/library/system.web.mvc.html.inputextensions_methods.aspx

<%:Html.TextBoxFor(model => Model.Email, new { @class="yourclassnamehere" })%>
0 голосов
/ 11 ноября 2010

Джон Хартсок совершенно прав - вот как ты это делаешь.Однако, если вы хотите, чтобы класс применялся ко всем вашим текстовым полям, вы могли бы немного упростить свою жизнь (ну) с помощью специального метода расширения:

public static MvcHtmlString MyTextBoxFor<TModel, TProperty>(
    this HtmlHelper<TModel> helper, 
    System.Linq.Expressions.Expression<Func<TModel, TProperty>> expression)
{
    return System.Web.Mvc.Html.InputExtensions.TextBoxFor(
        helper, 
        expression, 
        new { @class = "text-box" });
}

Он ведет себя так же, как обычный помощник текстового поля, но с добавленным классом:

<%: Html.MyTextBoxFor(m => m.Email) %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...