MVC 多种 数据验证 post
技术:c# .net 采用mvc框架,实现model的数据验证。
刚开始觉得数据验证很方便,可以判断非空、数据正确性,但是后来发现很多需要数据库的判定还是需要post请求做,但是就想mvc的数据验证是否可以做到同样的功能,示例如下。
一:Model 层调用Post 方法数据验证
using System.Web.Mvc;
//我用的是4.0000
/// <summary>
/// 手机号
/// </summary>
[Required(ErrorMessage = "手机号不能为空!")]
[RegularExpression("[0-9]{11,11}", ErrorMessage = "手机号格式错误!")]
[System.Web.Mvc.Remote("CheckGuestMobile", "CRM", "CommercialTenant", HttpMethod = "post", ErrorMessage = "手机号已存在")]
public string Mobile { get; set; }
/// <summary>
/// 判断客户手机号是否重复
/// </summary>
/// <param name="mobile"></param>
/// <returns>True 已有此手机号</returns>
[HttpPost]
public ActionResult CheckGuestMobile(string mobile)
{
if (this.CRMService.CheckGuestMobile(mobile, this.LoginInfo.CommercialTenantID))
{
return Content("false");
}
else
{
return Content("true");
}
}
ps:这个只是前段验证,但是关键数据要在后端再做验证
这个post方法为false时不需要返还bool 可以直接返还ErrorMessage
public JsonResult CheckUserName(string userName)
{
if (IsUniqueName(userName) && IsForbiddenName(userName))
{
return Json(true, JsonRequestBehavior.AllowGet);
}
else if (!IsUniqueName(userName))
{
return Json("用户名不唯一!", JsonRequestBehavior.AllowGet);
}
else
{
return Json("用户名不包含违禁词!", JsonRequestBehavior.AllowGet);
}
}
二:基本方法
1、Required-必填选项,当提交的表单缺少该值就引发验证错误。
/// <summary>
/// 姓名
/// </summary>
[DisplayName("姓名")]
[Required(ErrorMessage = "姓名不能为空!")]
public string Name { get; set; }
2、StringLength
[StringLength()] //最大长度不超过20个字符
public string name { get; set; }
[StringLength(20,MinimumLength=3)] //最大长度不超过20个字符,最短不能低于3个字符
public string password { get; set; }
3、RegularExpression-正则表达式能够匹配的字符串,如果不能匹配,则报一个验证错误
[RegularExpression(@"^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$", ErrorMessage = "请输入正确的电子邮箱地址!")]
public string email{ get; set; }
4、Range-用来指定数值类型值的最小值和最大值。
[Range(35,44)] //整型,最小35,最大44
[Range(typeof(decimal),"0.00","49.99")] //decimal类型
5、Remote-允许利用服务器端的回调函数执行客户端的验证逻辑。说白了就是支持AJAX验证。
细则如上所示
6、Compare-用于确保模板对象的两个对象拥有相同的值。
[Compare("要对比的属性名")]
[Compare("Money")]
public decimal price { get; set; }
以上特性需要 using System.ComponentModel.DataAnnotations;
同时需要注意Web.config里面的这两个选项是否设置为了true;
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
后面如果有好的方法再说。
MVC 多种 数据验证 post的更多相关文章
- <转>ASP.NET学习笔记之MVC 3 数据验证 Model Validation 详解
MVC 3 数据验证 Model Validation 详解 再附加一些比较好的验证详解:(以下均为引用) 1.asp.net mvc3 的数据验证(一) - zhangkai2237 - 博客园 ...
- 期货大赛项目|四,MVC的数据验证
上图先看下效果 样式先不说,先了解下数据验证是怎么实现的 一 必须是强类型的视图 二 这些显示提示的话语,都在强类型的实体中 三 必须使用Html.BeginForm或者Html.AjaxBeginF ...
- MVC中数据验证
http://www.studyofnet.com/news/339.html http://www.cnblogs.com/kissdodog/archive/2013/05/04/3060278. ...
- MVC Model数据验证
概述 上节我们学习了Model的数据在界面之间的传递,但是很多时候,我们在数据传递的时候为了确保数据的有效性,不得不给Model的相关属性做基本的数据验证. 本节我们就学习如何使用 System.Co ...
- ASP.NET MVC 扩展数据验证 转
此文只作记录 public class MaxWordsAttribute : ValidationAttribute { public MaxWordsAttribute(int maxWords) ...
- MVC 3 数据验证 Model Validation 详解
在MVC 3中 数据验证,已经应用的非常普遍,我们在web form时代需要在View端通过js来验证每个需要验证的控件值,并且这种验证的可用性很低.但是来到了MVC 新时代,我们可以通过MVC提供的 ...
- [转]MVC自定义数据验证(两个时间的比较)
本文转自:http://www.cnblogs.com/zhangliangzlee/archive/2012/07/26/2610071.html Model: public class Model ...
- (转)MVC 3 数据验证 Model Validation 详解
继续我们前面所说的知识点进行下一个知识点的分析,这一次我们来说明一下数据验证.其实这是个很容易理解并掌握的地方,但是这会浪费大家狠多的时间,所以我来总结整理一下,节约一下大家宝贵的时间. 在MVC 3 ...
- Asp.Net Mvc后台数据验证自测小Demo
使用过MVC的同学一定不陌生MVC的模型绑定和模型校验,使用起来非常方便,定义好Entity之后,在需要进行校验的地方可以打上相应的Attribute,在Action开始时检查ModelState的I ...
随机推荐
- 两周赚100万 在Google Play做对了什么
http://tech.it168.com/a2013/0301/1457/000001457913_all.shtml
- java.lang.NullPointerException org.apache.jsp.index_jsp._jspInit(index_jsp.java:22)
java.lang.NullPointerException org.apache.jsp.index_jsp._jspInit(index_jsp.java:22) org.apache.jsp.i ...
- 使用Openssl创建证书
概述 SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(Secure socketlayer(SSL),SSL安全协议主要用来提供对用户和服务器的认证:对传送的数据进行加密和隐藏: ...
- 运行第一个.net core程序
前置条件 ubuntu已安装.net core运行环境 分6步 mkdir netcore 创建一个项目文件夹 cd netcore 进入该文件夹 dotnet new new命令 用于创建一个 ...
- mongodb - collMod
该方法给集合添加一个标识,来修改集合的行为. 标识包含usePowerOf2Sizes和index. 命令格式为: db.runCommand({"collMod":<col ...
- php 获取客户端的浏览器信息
就是访问的时候,通过服务端来判断用户是否为移动端,如果是的话就重定向(移动端的页面).事实上现在都是一套搞定的了. 但是还是记录一下吧.没准以后用的到 http://detectmobilebr ...
- centos7 安装php 多线程pthreads
第一步:yum源更新 yum update 第二步:下载php7源码 wget http://124.202.164.8/files/312100000A0BB72D/cn.php.net/distr ...
- Unix删除当前目录可执行文件
On GNU versions of find you can use -executable: find . -type f -executable -printFor BSD versions o ...
- 网络结构----ISO/OSI七层网络模型和TCP/IP四层网络模型
对等实体在一次交互作用中传送的信息单位称为协议数据单元.它包含控制信息和用户数据两部分. 上下层实体之间的接口称为服务訪问点. ISO/OSI參考模型分为:物理层.数据链路层.网络层.传输层.会话层. ...
- mongodb 安装部署说明
mongodb.conf 配置文件 # Where the databases will be stored dbpath=/usr/local/mongodb/mongodb-/data/db # ...