助手的参数

时间:2018-03-23 16:09:19

标签: asp.net-mvc html-helper

我做了这个自定义助手:

 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'

好像我输错了类型或数量的参数。

这不是我的第一个助手,永远不能传递第一个参数,只能从第二个开始。

我忘了什么?

1 个答案:

答案 0 :(得分:1)

您将此方法称为RzHelpers类的静态方法。因此该方法不用作扩展并需要第一个参数。因此错误。

你应该将它作为你正在扩展的实例的方法,HtmlHelper:

@Html.RzTextBoxForCNPJ(model => model.Cnpj)