MVC 3“不包含validationmessagefor的定义”

时间:2012-08-17 15:48:56

标签: asp.net-mvc validation html-helper

我有以下代码尝试使用我自己的@ 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位于项目引用和使用中。

1 个答案:

答案 0 :(得分:4)

ValidationExtensions.ValidationMessageForSystem.Web.Mvc.Html命名空间的一部分。您需要使用完整命名空间明确引用ValidationExtensions,或在System.Web.Mvc.Html指令中包含using