回到目录

MVC4.0推出后,在模型验证上有了一个新的改近,它支持前端验证,即在用户POST之前,如果验证失败,则Action(POST方式的)不会被执行,而直接停留在原视图,这对于用户体验是好的,它就类似于ajax验证一样,不会将原页重定向。

MVC4.0在view中引用了jqueryval文件后,即可实现客户端实时验证

@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

如果你不需要走JS方式验证,还是使用原来的POST方法后再进行验证的话,把上面那行删除即可,当然,MVC为我们提供的验证展示可能不是我们想要的,它往往会将“验证失败的提示信息”添加一个<span>然后为它加class,这可能并不是我们想要的,因为我们

的“错误提示”往往由前端开发人员提供的,所以,我们最需要的是“纯文字”的错误提示,现在,我把MVC的ValidationMessageFor扩展方法进行了新的扩展,我叫它ValidationMessageTextFor,它会将模型里的某个字段的验证错误的消息进行“纯文字”的输出,不

会有任何HTML标记,这才是我们所需要的,它也有不足,那就是目前并不支持前端实时模型验证!

ValidationMessageTextFor原代码如下,供大家学习与研究:

namespace System.Web.Mvc.Html
{
/// <summary>
/// MVC中对HtmlHelper扩展方法
/// </summary>
public static class MvcHtmlExtensions
{
/// <summary>
/// 从ModelState中返回指定键对应的验证的错误消息
/// </summary>
/// <typeparam name="TModel"></typeparam>
/// <typeparam name="TProperty"></typeparam>
/// <param name="htmlHelper"></param>
/// <param name="expression"></param>
/// <returns></returns>
public static MvcHtmlString ValidationMessageTextFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression)
{ var fieldName = ExpressionHelper.GetExpressionText(expression); var modelState = htmlHelper.ViewData.ModelState;
if (!modelState.Keys.Contains(fieldName))
return null;
if (modelState[fieldName].Errors.Count == )
return null;
IList<string> errList = new List<string>();
modelState[fieldName].Errors.ToList().ForEach(i =>
{
errList.Add(i.ErrorMessage);
});
return MvcHtmlString.Create(string.Join(",", errList)); }
}
}

现在输出的错误消息就是纯文字,如图

aaarticlea/png;base64,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" alt="" />

回到目录

爱上MVC~MVC4模型验证可以放在前端的更多相关文章

  1. .Net高级进阶,WebApi和MVC进行模型验证的时候,教你如何自由控制需要进行验证的字段?

    现在,你有一个MVC架构的web项目,你要完成一个注册功能. 前台传了3个值到你的控制器,分别是账号.密码.邮箱. 如图:现在你要在控制器里面判断,账号名称.密码.邮箱不能为空,并且名称和密码不超过1 ...

  2. MVC3升级到MVC4模型验证信息显示为英文问题及解决方案

    最近把项目从mvc3升级到mvc4,部署到服务器上出现了一个小问题,就是在表单里字段验证时,验证显示信息为英文,如下: The field 平均租金 must be a number 而在本地是好的, ...

  3. ASP.NET MVC 自动模型验证

    经常看到这个代码 在controller 中写入验证模型,每个需要验证的action 都写-.. ,就问你烦不烦~ 可以利用 ASP.NET MVC 的 action 拦截机制 自动处理. 1 新建验 ...

  4. ASP.NET没有魔法——ASP.NET MVC 模型验证

    在前面的文章中介绍了用户的注册及登录功能,在注册用户时可以通过代码的形式限制用户名及密码的格式,如果不符合要求那么就无法完成操作,如下图: 该功能的原理是Identity基于的Entity Frame ...

  5. 模型验证组件 FluentValidation

    FluentValidation 是 .NET 下的模型验证组件,和 ASP.NET MVC 基于Attribute 声明式验证的不同处,其利用表达式语法链式编程,使得验证组件与实体分开.正如 Flu ...

  6. FluentValidation 模型验证

    FluentValidation 是 .NET 下的模型验证组件,和 ASP.NET MVC 基于Attribute 声明式验证的不同处,其利用表达式语法链式编程,使得验证组件与实体分开.正如 Flu ...

  7. 双重保险——前端bootstrapValidator验证+后台MVC模型验证

    我们在前端使用BoostrapValidator插件验证最基本的格式要求问题,同时在后台中,使用MVC特有的模型验证来做双重保险.对于boostrapValidator我就不说了,具体请看<bo ...

  8. ASP.NET Core 中文文档 第四章 MVC(2.2)模型验证

    原文:Model Validation 作者:Rachel Appel 翻译:娄宇(Lyrics) 校对:孟帅洋(书缘) 在这篇文章中: 章节: 介绍模型验证 验证 Attribute 模型状态 处理 ...

  9. MVC遇上bootstrap后的ajax表单模型验证

    MVC遇上bootstrap后的ajax表单验证 使用bootstrap后他由他自带的样式has-error,想要使用它就会比较麻烦,往常使用jqueyr.validate的话只有使用他自己的样式了, ...

随机推荐

  1. 如果因特网中的所有链路都提供可靠的交付服务,TCP可靠传输服务是多余的吗?

    IP协议因为是无连接的, 所以其传输是不可靠的.虽然链路保证了数据包在端到端的传输中不发生差错,但是它不能保证IP数据包是按照正确的书需到达最终的目的地.IP数据包可以使用不同的路由通过网络,到达接收 ...

  2. 在安卓下打包cocos2d-js 3.6项目with ProtoBuf.js

    项目用到了cocos2d-js 3.6和ProtoBuf.js,但是打包成apk时运行时总是报错(evaluatedOK == JS_FALSE),没有具体的文件和行号报错信息. 只能一个一个文件排查 ...

  3. jsp去掉小数点

    <fmt:formatNumber value="${zyUser.user_gold}" pattern="0"/>

  4. virtualbox下面安装ubuntu后外网如何远程ssh访问

    这两天在折腾virtualbox安装linux的事情,想多弄几个节点,装hadoop, 环境如下 两台thinkpad, 一台正常上班用的,win7 一台装的ubuntu kylin 16.04, 上 ...

  5. 【OSG学习笔记之一:】OSG+VS2010+win7 64位环境搭建

    虽然出生的时候,没有说过“Hello World!”,但是自从走上了编程之路,每一次输出“Hello World!”的时候,都觉得好比中了彩票大奖似的: 仔细算算,从2012年暑假到现在,经历了3年半 ...

  6. 我与solr(四)--solrJ

    SolrJ索引库: solr提供的一个客户端操作框架,在文件/solr6.2/dist下面可以找到该jar包solrj.jar以及相关jar包,可以使用maven添加. java使用solrJ如下: ...

  7. [机器学习] 在茫茫人海中发现相似的你:实现局部敏感哈希(LSH)并应用于文档检索

    简介 局部敏感哈希(Locality Sensitive Hasing)是一种近邻搜索模型,由斯坦福大学的Mose Charikar提出.我们用一种随机投影(Random Projection)的方式 ...

  8. 使用ShareSDK一键分享

    首先需要到ShareSDK官方网站注册并且下载SDK,创建应用,获得ShareSDK的Appkey:文件如图: 在ShareSDK中打开即可:输入项目名称和包名,选择要分享的平台,点击确定会自动生成一 ...

  9. myeclipse使用maven插件进行maven install时报错check $m2_home environment variable and mvn script match

    check $m2_home environment variable and mvn script match 分类: maven2015-09-01 18:06 842人阅读 评论(0) 收藏 举 ...

  10. 【转载】Recommendations with Thompson Sampling (Part II)

    [原文链接:http://engineering.richrelevance.com/recommendations-thompson-sampling/.] [本文链接:http://www.cnb ...