Asp.net mvc 3 自定义ValidationMessageFor时出错

Asp.net mvc 3 自定义ValidationMessageFor时出错,asp.net-mvc-3,Asp.net Mvc 3,我想自定义显示错误的ValidationMessage。当我运行应用程序时,出现一个错误: 方法“ValidationMessageFor”不重载1个参数 我很理解我的错误,但我不知道如何修复它? 我需要一些建议。谢谢你的阅读 我的代码: using System.Linq.Expressions; using System.Web; using System.Web.Mvc; namespace OurCompanyUI.app_code { public static cl

我想自定义显示错误的ValidationMessage。当我运行应用程序时,出现一个错误: 方法“ValidationMessageFor”不重载1个参数

我很理解我的错误,但我不知道如何修复它? 我需要一些建议。谢谢你的阅读

我的代码:

    using System.Linq.Expressions;
using System.Web;
using System.Web.Mvc;

namespace OurCompanyUI.app_code
{
    public static class MyHtml
    {
        public static MvcHtmlString ValidationMessageFor<TModel, TProperty>(
                                        this HtmlHelper<TModel> htmlHelper,
                                        Expression<Func<TModel, TProperty>> expression,
                                        string validationMessage,
                                        IDictionary<string, Object> htmlAttributes
                                    )
        {
            string modelName = ExpressionHelper.GetExpressionText(expression);
            TagBuilder p = new TagBuilder("p");
            p.InnerHtml = htmlHelper.ValidationMessageFor(htmlHelper,expression).ToString();
         //   p.InnerHtml = htmlHelper.ValidationMessageFor().ToString();
            return MvcHtmlString.Create(p.ToString(TagRenderMode.Normal)); 
        }   
    }
}
使用System.Linq.Expressions;
使用System.Web;
使用System.Web.Mvc;
名称空间OurCompanyUI.app\u代码
{
公共静态类MyHtml
{
公共静态MvcHtmlString ValidationMessageFor(
这个HtmlHelper HtmlHelper,
表情表情,
字符串验证消息,
辞典
)
{
字符串modelName=ExpressionHelper.GetExpressionText(表达式);
标记生成器p=新标记生成器(“p”);
p、 InnerHtml=htmlHelper.ValidationMessageFor(htmlHelper,expression).ToString();
//p.InnerHtml=htmlHelper.ValidationMessageFor().ToString();
返回MvcHtmlString.Create(p.ToString(TagRenderMode.Normal));
}   
}
}

通过在using指令中添加以下内容,确保已将原始
ValidationMessageFor
帮助程序定义的命名空间纳入范围:

using System.Web.Mvc.Html;

我使用System.Web.Mvc.Html.ValidationExtensions.ValidationMessageFor。它属于您建议的System.Web.Mvc.Html。但我不会纠正错误。你能解释一下这个代码吗:
表达式,
,plz?谢谢你!什么错误?只需添加using,如我的答案所示,然后调用
htmlHelper.ValidationMessageFor(expression.ToString()
即可。如果要使用
System.Web.Mvc.Html.ValidationExtensions.ValidationMessageFor
(这是使用扩展方法的错误方式),则需要将htmlHelper作为第一个参数传递:
p.InnerHtml=System.Web.Mvc.Html.ValidationExtensions.ValidationMessageFor(htmlHelper,expression.ToString()。我使用了第一种方法,这是您为我建议的。但我不明白ValidationMessageFor属于哪里。我认为,这是System.Web.Mvc.HtmlHelper的方法。你建议我使用System.Web.Mvc.Html???对不起,我的英语不太好。^^!我正在使用visual 2012。我用visual 2010尝试上面的代码。我的代码是没有任何错误???@user1542080,
ValidationMessageFor
是在
System.Web.Mvc.Html
命名空间中定义的HtmlHelper类的扩展方法。请阅读.NET中的扩展方法:这就是为什么您应该使用System.Web.Mvc.Html向文件中添加
,以便将此扩展方法纳入范围。