4

@ Html.ValidationMessageForを自分の@Html.MyValidationMessageFor(model => model.myfield)で拡張し、カスタムエラー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 <Model>には、ValidationMessageForの定義が含まれておらず、タイプの最初の引数を受け入れる拡張メソッドValidationMessageForがありません。参照。

System.Web.Mvcがプロジェクト参照と使用にあるため、理解できません。

4

1 に答える 1

6

ValidationExtensions.ValidationMessageForは、System.Web.Mvc.Html名前空間の一部です。完全な名前空間を使用して明示的に参照ValidationExtensionsするか、ディレクティブSystem.Web.Mvc.Html内に含める必要があります。using

于 2012-08-28T11:12:54.467 に答える