我有以下代码尝试使用我自己的@ Html.MyValidationMessageFor(model => model.myfield)扩展@ Html.ValidationMessageFor并提供自定义错误html
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Text;
using System.Linq.Expressions;
namespace Hml.BackEnd.Helpers
{
public static class HtmlHelpers
{
public static MvcHtmlString MyValidationMessageFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression)
{
string myContent = "<div>" + htmlHelper.ValidationMessageFor(expression).ToString() + "</div>";
return MvcHtmlString.Create(myContent);
}
}
}
我收到以下编译信息:
'System.Web.Mvc.HtmlHelper&lt;型号&gt;不包含ValidationMessageFor的定义,也没有扩展方法ValidationMessageFor接受类型为'System.Web.Mvc.HtmlHelper&lt;的第一个参数TModel&gt;可以找到你错过了使用或汇编参考。
我无法理解,因为System.Web.Mvc位于项目引用和使用中。
答案 0 :(得分:4)
ValidationExtensions.ValidationMessageFor是System.Web.Mvc.Html命名空间的一部分。您需要使用完整命名空间明确引用ValidationExtensions
,或在System.Web.Mvc.Html
指令中包含using
。