asp.net-mvc – 如何防止MVC3 html转义我的验证消息?
发布时间:2020-12-16 07:44:28 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试在MVC3中输出包含链接的验证消息. 我正在输出这样的错误消息占位符 @Html.ValidationMessageFor(model = model.Email) 问题是,错误消息是html转义,大多数情况下很好,但我想要一个链接在中间. span class="field-validation-error" data-valmsg-for
我正在尝试在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. <a href="%url_token%">Click here to reset.</a></span> 我该如何防止这种情况发生? 这有效但不是解决方案,而是临时工作. @{ string s = Html.ValidationMessageFor(model => model.Email).ToString(); } @Html.Raw(HttpUtility.HtmlDecode(s)) 解决方法
以@ BrunoLM为首,以下扩展方法应该能满足您的需求.我只对此进行了基本测试,但确实有效.
public static class HtmlHelperExtensions { private static readonly string htmlErrorPlaceholder = "##__html#Error#Placeholder__##"; public static IHtmlString HtmlValidationMessageFor<TModel,TProperty>( this HtmlHelper<TModel> htmlHelper,Expression<Func<TModel,TProperty>> expression,object htmlAttributes) { var name = expression.GetMemberName(); var isInError = htmlHelper.ViewContext.ViewData.ModelState.ContainsKey(name); var message = htmlHelper.ValidationMessageFor(expression,htmlErrorPlaceholder,htmlAttributes); if (isInError && !MvcHtmlString.IsNullOrEmpty(message)) { var realError = htmlHelper.ViewContext.ViewData.ModelState[name].Errors.First().ErrorMessage; return htmlHelper.Raw(message.ToString().Replace(htmlErrorPlaceholder,realError)); } return MvcHtmlString.Empty; } } public static class Expression_1Extensions { public static string GetMemberName<TModel,TProperty>(this Expression<Func<TModel,TProperty>> expression) { switch (expression.Body.NodeType) { case ExpressionType.MemberAccess: MemberExpression memberExpression = (MemberExpression)expression.Body; return memberExpression.Member is PropertyInfo ? memberExpression.Member.Name : null; } throw new NotSupportedException(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 将模型信息传递给RenderPartial
- asp.net-mvc-3 – 型号型号无法更新mvc
- asp.net-mvc – 使用ASP.NET MVC的SEO URL
- asp.net – ReportViewer控件返回空白页面
- asp.net – 不允许从数据类型sql_variant到uniqueidentifie
- asp.net-mvc – 与Microsoft HTTP Client Libraries v2.1.1
- asp.net-mvc – Ninject绑定在不同的控制器上
- asp.net – scriptresource.axd 404错误在asp net 4应用程序
- asp.net – Url重写与路由
- asp.net – “字符串中没有引号”的正则表达式是什么?
推荐文章
站长推荐
热点阅读