Рендеринг HTML-тегов внутри HTML.ValidationMessageFor в MVC3

Я пытаюсь показать ссылку как часть сообщения проверки для поля. Я использую атрибуты данных с пользовательскими сообщениями об ошибках, чтобы установить его:

[Required(ErrorMessage = "Message <a href='#'>link</a>")]
public string Field{ get; set; }

Но при рендеринге теги экранируются и буквально печатаются:

Message <a href='#'>link</a>

Можно ли иметь ссылку как часть сообщения проверки, но правильно отображать?

Если кому-то интересно, вот как я это сделал

public static MvcHtmlString ValidationHTMLMessageFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression)
{
    return ValidationHTMLMessageFor(helper, expression, (object)null);
}
public static MvcHtmlString ValidationHTMLMessageFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression, object htmlAttributes)
{
    return ValidationHTMLMessageFor(helper, expression, new RouteValueDictionary(htmlAttributes));
}
public static MvcHtmlString ValidationHTMLMessageFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression, IDictionary<string, object> htmlAttributes)
{
    string propertyName = ExpressionHelper.GetExpressionText(expression);
    string name = helper.AttributeEncode(helper.ViewData.TemplateInfo.GetFullHtmlFieldName(propertyName));

    if (helper.ViewData.ModelState[name] == null ||
        helper.ViewData.ModelState[name].Errors == null ||
        helper.ViewData.ModelState[name].Errors.Count == 0)
    {
        return MvcHtmlString.Empty;
    }

    string errors = "";
    foreach (ModelError error in helper.ViewData.ModelState[name].Errors)
    {
        TagBuilder tag = new TagBuilder("span");
        tag.Attributes.Add("class", HtmlHelper.ValidationMessageCssClassName);
        tag.MergeAttributes(htmlAttributes);
        tag.Attributes.Add("data-valmsg-for", name);
        tag.Attributes.Add("data-valmsg-replace", "true");

        var text = tag.ToString(TagRenderMode.StartTag);
        text += error.ErrorMessage;
        text += tag.ToString(TagRenderMode.EndTag);
        errors += text;
    }

    return MvcHtmlString.Create(errors);

}

Спасибо, Дарин, за то, что указал мне правильное направление. Я также нашел это, что я использовал в качестве шаблонаНастроить Html.ValidationMessageFor не работает на стороне клиента.

Я новичок в этом, поэтому, если у кого-то есть какие-либо предложения, пожалуйста, напишите. Спасибо!

Ответы на вопрос(5)

Ваш ответ на вопрос