文档章节

MVC ValidationMessage 去除上面的Html 标签

c
 circle_july
发布于 2017/03/28 14:10
字数 254
阅读 38
收藏 0

    有时候MS 为我们做的太多,我们也很烦,毕竟有是时候希望简单一点,
    前端的要求,需要贴上去的数据不要那些杂七杂八的标签,

原生的WebViewPage<T>.Html.ValidationMessageFor()

再生成后总会带有一个<span> 标签,我不想要

 

最后我还是加了一个扩展方法

public static class WebViewPageExtensions
    {
        /// <summary>
        /// 指定表达式
        /// </summary>
        /// <typeparam name="TModel"></typeparam>
        /// <typeparam name="TProperty"></typeparam>
        /// <param name="webViewPage"></param>
        /// <param name="expression"></param>
        /// <returns></returns>
        public static string ValidationMessageFor<TModel, TProperty>(this WebViewPage<TModel> webViewPage, Expression<Func<TModel, TProperty>> expression)
        {
            //如果没有错误,那么就不显示
            if (webViewPage.ViewData.ModelState.IsValid) return null;

            var propertyName = ExpressionHelper.GetExpressionText(expression);

            var modelState=webViewPage.ViewData.ModelState[propertyName];

            StringBuilder stringBuilder = new StringBuilder();

            foreach(var error in modelState.Errors)//把所有错误都打印出来
            {
                stringBuilder.AppendLine(error.ErrorMessage);
            }

            return stringBuilder.ToString();
        }
    }

这样用起来,还不是美滋滋.

下面贴下使用效果
 

@model MVCTest.Models.Form1

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title></title>
</head>
<body>
    <form action="@Url.Action("Index")" method="post">
        <div>
            @Html.TextBox("Name")
        </div>
        <div>
            @Html.ValidationMessageFor(a => a.Name)
        </div>
        <div>
            @this.ValidationMessageFor(a=>a.Name)
        </div>
        <div>
            <input type="submit" />
        </div>
    </form>
</body>
</html>

 

© 著作权归作者所有

c
粉丝 0
博文 5
码字总数 1076
作品 0
温州
程序员
私信 提问
Model验证系统运行机制是如何实现的?

在前面三篇文章(《ModelValidator》、《ModelValidatorProvider》和《ModelValidatorProviders》)中我们详细介绍了真正用于Model验证的ModelValidator以及相关的提供机制,接下来我们来讨论...

长平狐
2012/09/04
2.4K
0
7 天玩转 ASP.NET MVC — 第 3 天

目录 第 1 天 第 2 天 第 3 天 第 4 天 第 5 天 第 6 天 第 7 天 0. 前言 我们假定你在开始学习时已经阅读了前两天的学习内容。在第 2 天我们完成了关于显示 Employees 列表的项目。 在第三天...

OneAPM蓝海讯通
2015/07/29
220
0
七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理

第三天我们将学习Asp.Net中数据处理功能,了解数据访问层,EF,以及EF中常用的代码实现方式,创建数据访问层和数据入口,处理Post数据,以及数据验证等功能。 系列文章 七天学会ASP.NET MVC...

葡萄城控件技术团队
2015/06/30
36
0
MVVM架构~knockoutjs系列之验证信息自定义输出~续

上一讲中,我以一个实际中的例子说明了knockoutjs的自定义验证功能,在使用过程中,出现了一个问题,当然了不是问题,只是一种需求,上一讲中自定义验证的表现是:当页面加载后,自动显示有问...

mcy247
2017/12/06
0
0
java 正则 去除html标签

.replaceAll("<[^>]*>", "") 为什么使用上面那句话就可以把str中的html标签去除呢,不太懂为什么,求教! 主要是不懂“[^>]*”这里对去除html标签的作用。。。 求大神详细解答下。。。java正...

小栗子hl
2016/12/15
292
3

没有更多内容

加载失败,请刷新页面

加载更多

全球第一时间响应:Rancher发布2.3.1,支持K8S CVE修复版本

北京时间2019年10月17日,Kubernetes发布了新的补丁版本,修复了新近发现的两个安全漏洞:CVE-2019-11253和CVE-2019-16276。Rancher第一时间响应,就在当天紧随其后发布了Rancher v2.3.1和R...

RancherLabs
19分钟前
3
0
EMQ X 规则引擎系列 (八)桥接消息到 MQTT Broker

桥接概念 桥接是一种连接多个 EMQ X 或者其他 MQTT 消息中间件的方式。不同于集群,工作在桥接模式下的节点之间不会复制主题树和路由表。桥接模式所做的是: 按照规则把消息转发至桥接节点;...

EMQX
23分钟前
4
0
《2019年上半年云上企业安全指南》详解安全建设最易忽视的问题!

《2019年上半年云上企业安全指南》是阿里云基于对云安全中心监测到的威胁情报进行分析,形成的一份云上企业安全建设指南。通过对云上企业安全建设现状及多维度威胁情报的分析,得出企业安全建...

开源中国小二
23分钟前
4
0
一天之际在于晨之KMP算法

(我觉得不需要明白原理,应该是在面试或者工作的时候,该想到用什么算法以及之后直接赋值我这里的代码就好了) 下面的情况我们第一时间考虑想到的是用KMP算法。 情况一:// ts字符串是否包...

木九天
26分钟前
3
0
如何通过反射机制创建对象?

1. 什么是反射? Java 反射机制在程序运行时,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。这种动态的获取信息以及动态调用对...

happywe
26分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部