我做了这个自定义助手:
public static System.Web.Mvc.MvcHtmlString RzTextBoxForCNPJ<TModel, TValue>(this System.Web.Mvc.HtmlHelper<TModel> html,
System.Linq.Expressions.Expression<System.Func<TModel, TValue>> expression)
{
System.Collections.Generic.Dictionary<string, object> htmlAttributes = new System.Collections.Generic.Dictionary<string, object>();
htmlAttributes.Add("class", "form-control cnpj");
return (html.TextBoxFor(expression, htmlAttributes));
}
避免需要将类属性添加到特定类型的字段。
但是。使用这个助手时:
@RzHelpers.RzTextBoxForCNPJ(model => model.Cnpj)
我收到了这个错误:
CS7036:没有任何参数对应于'RzHelpers.RzTextBoxForCNPJ(HtmlHelper,Expression&gt;)'
所需的形式参数'expression'好像我输错了类型或数量的参数。
这不是我的第一个助手,永远不能传递第一个参数,只能从第二个开始。
我忘了什么?
答案 0 :(得分:1)
您将此方法称为RzHelpers
类的静态方法。因此该方法不用作扩展并需要第一个参数。因此错误。
你应该将它作为你正在扩展的实例的方法,HtmlHelper:
@Html.RzTextBoxForCNPJ(model => model.Cnpj)