自动在asp.net输入文本框上设置类

时间:2010-11-10 21:33:41

标签: asp.net-mvc asp.net-mvc-2

如果我使用:

<%: Html.EditorForModel() %>

texbox这样生成:

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

PS。这种方法甚至不进行验证。

如果我使用:

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

然后在没有类的情况下生成文本框。如何将所有Html.TextBoxFor()课程附加到上述Html.EditorForModel()的内容?

2 个答案:

答案 0 :(得分:1)

像这样......这里是参考http://msdn.microsoft.com/en-us/library/system.web.mvc.html.inputextensions_methods.aspx

<%:Html.TextBoxFor(model => Model.Email, new { @class="yourclassnamehere" })%>

答案 1 :(得分:0)

John Hartsock是完全正确的 - 你就是这样做的。但是,如果您希望将该类应用于所有文本框,则可以使用自定义扩展方法使您的生活更加轻松:

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) %>