Asp.net mvc 有没有办法自定义@Html.TextBoxFor(m=>;m.UserName)生成的内容
我正在使用:Asp.net mvc 有没有办法自定义@Html.TextBoxFor(m=>;m.UserName)生成的内容,asp.net-mvc,asp.net-mvc-5,Asp.net Mvc,Asp.net Mvc 5,我正在使用:@Html.TextBoxFor(m=>m.UserName)。这给了我: <input data-val="true" data-val-required="The User name field is required." id="UserName" name="UserName" type="text" value="xxx"> 我想让它产生一个类似这样的: <input class="login1" name="User
@Html.TextBoxFor(m=>m.UserName)
。这给了我:
<input data-val="true"
data-val-required="The User name field is required."
id="UserName" name="UserName" type="text" value="xxx">
我想让它产生一个类似这样的
:
<input class="login1" name="UserName"
placeholder="Username (or guest)" required size="25" type="text">
有没有办法自定义TextBoxFor以添加占位符、必填项和大小?是的,您需要添加另一个参数
@Html.TextBoxFor(m => m.UserName, new { placeholder="Username (or guest", ...}
另请参见:是,您需要添加另一个参数
@Html.TextBoxFor(m => m.UserName, new { placeholder="Username (or guest", ...}
另请参见:如果您不需要与验证相关的属性,我认为您必须使用
@Html.TextBox()
@
用作转义关键字(如@class)的前缀。您可能不需要它作为占位符和大小。如果您不需要与验证相关的属性,我认为您必须使用@Html.TextBox()
@
用作转义关键字(如@class)的前缀。您可能不需要它作为占位符和大小。您可以编写自己的帮助程序:
public static class CustomHelpers
{
public static MvcHtmlString CustomTexBoxFor<TModel, TProp>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProp>> expression, object htmlAttributes)
{
ModelMetadata metadata = ModelMetadata.FromLambdaExpression(expression, helper.ViewData);
string name = ExpressionHelper.GetExpressionText(expression);
TagBuilder tagBuilder = new TagBuilder("input");
tagBuilder.MergeAttribute("name", name);
tagBuilder.MergeAttribute("value", metadata.Model.ToString());
tagBuilder.MergeAttribute("placeholder", "Username (or guest)");
... other attributes and htmlAttribute parameters
return MvcHtmlString.Create(tagBuilder.ToString(TagRenderMode.SelfClosing));
}
}
公共静态类CustomHelpers
{
公共静态MvcHtmlString CustomTexBoxFor(此HtmlHelper、表达式、对象htmlAttributes)
{
ModelMetadata=ModelMetadata.FromLambdaExpression(表达式,helper.ViewData);
字符串名称=ExpressionHelper.GetExpressionText(表达式);
TagBuilder TagBuilder=新的TagBuilder(“输入”);
tagBuilder.MergeAttribute(“名称”,名称);
tagBuilder.MergeAttribute(“value”,metadata.Model.ToString());
tagBuilder.MergeAttribute(“占位符”、“用户名(或来宾)”);
…其他属性和htmlAttribute参数
返回MvcHtmlString.Create(tagBuilder.ToString(TagRenderMode.SelfClosing));
}
}
您可以编写自己的帮助程序:
public static class CustomHelpers
{
public static MvcHtmlString CustomTexBoxFor<TModel, TProp>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProp>> expression, object htmlAttributes)
{
ModelMetadata metadata = ModelMetadata.FromLambdaExpression(expression, helper.ViewData);
string name = ExpressionHelper.GetExpressionText(expression);
TagBuilder tagBuilder = new TagBuilder("input");
tagBuilder.MergeAttribute("name", name);
tagBuilder.MergeAttribute("value", metadata.Model.ToString());
tagBuilder.MergeAttribute("placeholder", "Username (or guest)");
... other attributes and htmlAttribute parameters
return MvcHtmlString.Create(tagBuilder.ToString(TagRenderMode.SelfClosing));
}
}
公共静态类CustomHelpers
{
公共静态MvcHtmlString CustomTexBoxFor(此HtmlHelper、表达式、对象htmlAttributes)
{
ModelMetadata=ModelMetadata.FromLambdaExpression(表达式,helper.ViewData);
字符串名称=ExpressionHelper.GetExpressionText(表达式);
TagBuilder TagBuilder=新的TagBuilder(“输入”);
tagBuilder.MergeAttribute(“名称”,名称);
tagBuilder.MergeAttribute(“value”,metadata.Model.ToString());
tagBuilder.MergeAttribute(“占位符”、“用户名(或来宾)”);
…其他属性和htmlAttribute参数
返回MvcHtmlString.Create(tagBuilder.ToString(TagRenderMode.SelfClosing));
}
}
删除模型验证以删除数据val required属性并添加一些html属性,如下所示
@Html.TextBoxFor(m => m.UserName,new {placeholder="Username (or guest)",
required = "required ",@size="25" })
Remove model validation以删除数据val required属性,并添加一些html属性,如下所示
@Html.TextBoxFor(m => m.UserName,new {placeholder="Username (or guest)",
required = "required ",@size="25" })