Asp.net mvc 3 自定义ValidationMessageFor时出错
我想自定义显示错误的ValidationMessage。当我运行应用程序时,出现一个错误: 方法“ValidationMessageFor”不重载1个参数 我很理解我的错误,但我不知道如何修复它? 我需要一些建议。谢谢你的阅读 我的代码: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
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向文件中添加,以便将此扩展方法纳入范围。