MVC 3“不包含validationmessagefor的定义”

use*_*886 4 validation asp.net-mvc 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);
    }
}
}
Run Code Online (Sandbox Code Playgroud)

我收到以下编译消息:

'System.Web.Mvc.HtmlHelper <Model> 不包含 ValidationMessageFor 的定义,并且没有扩展方法 ValidationMessageFor 接受类型为 'System.Web.Mvc.HtmlHelper < TModel> 的第一个参数是否可以找到您是否缺少 using 或程序集参考。

我无法理解,因为 System.Web.Mvc 在项目引用和使用中。

Ale*_*exC 6

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