gpt4 book ai didi

asp.net-mvc - 如何防止 MVC3 html 转义我的验证消息?

转载 作者:行者123 更新时间:2023-12-04 21:50:04 24 4
gpt4 key购买 nike

我正在尝试在包含链接的 MVC3 中输出验证消息。

我正在输出这样的错误消息占位符

@Html.ValidationMessageFor(model => model.Email)

问题是,错误消息是 html 转义的,这在大多数情况下都很好,但我希望中间有一个链接。
<span class="field-validation-error" data-valmsg-for="Email" data-valmsg-replace="true">This e-mail address is already registed. &lt;a href=&quot;%url_token%&quot;&gt;Click here to reset.&lt;/a&gt;</span>

我该如何防止这种情况发生?

这可行,但不是解决方案,而是临时解决方法。
@{
string s = Html.ValidationMessageFor(model => model.Email).ToString();
}
@Html.Raw(HttpUtility.HtmlDecode(s))

最佳答案

用反射器查看代码似乎没有方法,更完整的重载是:

public static MvcHtmlString ValidationMessageFor<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression,
string validationMessage,
object htmlAttributes)
{
return htmlHelper.ValidationMessageFor<TModel, TProperty>(expression, validationMessage, ((IDictionary<string, object>) HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes)));
}

但是,您可以做的是创建一个扩展方法,该方法可以根据需要返回字符串,如下所示:
public static class ValidationExtender
{
public static IHtmlString HtmlValidationMessageFor<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression)
{
return MvcHtmlString.Create(htmlHelper.ValidationMessageFor(expression).ToHtmlString());
}
}

您可以使用 MvcHtmlString .见 MvcHtmlString.Create() .它将输出html而不转义。

关于asp.net-mvc - 如何防止 MVC3 html 转义我的验证消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6385402/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com