.NET MV4 Remote远程验证注意事项及案例
首先是模型代码
public class LoginModel
{
[Required]
[Display(Name = "用户名")]
[Remote("CheckName", "Account", ErrorMessage = "用户测试")]
public string UserName { get; set; } [Required]
[DataType(DataType.Password)]
[Display(Name = "密码")]
public string Password { get; set; } [Required]
[Display(Name = "验证码")]
//[Remote("CheckValidateCode", "Account", ErrorMessage = "验证码输出错误")]
[Editable(true)]
public string ValidateNumber { get; set; }
}
控制器:
[HttpGet]
[AllowAnonymous]
[OutputCache(Location = System.Web.UI.OutputCacheLocation.None, NoStore = true)] //清除缓存
public JsonResult CheckName(string UserName)
{ if (UserName.Length > )
{
return Json(true, JsonRequestBehavior.AllowGet); }
else
{
return Json("输入太短", JsonRequestBehavior.AllowGet);
}
}
视图页
@model UMoney.Site.Models.LoginModel
@{
ViewBag.Title = "";
Layout = "~/Views/Shared/_Layout.cshtml";
} <h2>Login</h2>
@using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl })) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>“登录”表单</legend>
<ol> <li>
@Html.LabelFor(m => m.ValidateNumber)
@Html.EditorFor(m => m.ValidateNumber)
<img id="valiCode" style="cursor: pointer;" src="/Account/GetValidateCode" alt="验证码" onClick="javascript:this.src='/Account/GetValidateCode?'+ Math.random()" /> @Html.ValidationMessageFor(m => m.ValidateNumber)
</li>
<li>
@Html.LabelFor(m => m.UserName)
@Html.EditorFor(m => m.UserName)
@Html.ValidationMessageFor(m => m.UserName)
</li>
<li>
@Html.LabelFor(m => m.Password)
@Html.PasswordFor(m => m.Password)
@Html.ValidationMessageFor(m => m.Password)
</li> </ol>
<input type="submit" value="登录" />
</fieldset>
<p>
@Html.ActionLink("Register", "Register") (如果你没有帐户)。
</p>
}
@Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/jqueryval")
需要注意的是
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
引用的 JS绑定文件顺序不能颠倒
如果
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/jquery")
这样,romote 远程验证将会失效。
这是页面生成的代码
<script src="/Scripts/jquery-1.4.4.js"></script>
<script src="/Scripts/jquery-1.7.1.js"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>
不能颠倒的原因也是 jquery验证文件
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>
不能先于 jquery主文件进行导入
<script src="/Scripts/jquery-1.4.4.js"></script>
<script src="/Scripts/jquery-1.7.1.js"></script>
所以一定要注意导入顺序,我就是没注意这个问题,折腾了2个小时,崩溃!
.NET MV4 Remote远程验证注意事项及案例的更多相关文章
- asp.net mvc Remote远程验证
1.Model实体 /// <summary> /// 课程编号 /// </summary> [MaxLength()] [Remote("IsUnique_Ava ...
- ASP.NET MVC3开发 - CodeFisrt数据库篇之M层验证之调用远程方法(Remote)验证
本文讲述在作者在使用.net mvc3进行开发的时候用到的两种调用远程验证的方法,第一种方法比较傻瓜,第二种方法方便好用,调用远程验证是个比较常见的验证方法,比如注册用户时的用户名唯一性验证. 作者原 ...
- jquery.validate 远程验证remote使用详解
目的: 试了一下远程验证,试了好几次,得出小结,可以记录下,提醒以防绕路. ----------------直接贴图,省事明了---------------- 1.引用js 2.demo的html & ...
- 1)jquery validate 远程验证remote,自定义验证 , 手机号验证 2)bootstrap validate 远程remote验证的方法.
1)jquery validate 远程验证remote,自定义验证 1-1: js <script src="YYFramework/Public/js/jquery-3.1.1. ...
- MVC验证01-基础、远程验证
本文体验MVC服务端和客户端验证.主要涉及:※ 基础验证※ 远程验证1个或多个属性及注意点 基础体验 创建MVC4的Internet项目,本身包含了基本的Model,Views,Controller. ...
- (转)jquery.validate.js 的 remote 后台验证
之前已经有一篇关于jquery.validate.js验证的文章,还不太理解的可以先看看:jQuery Validate 表单验证(这篇文章只是介绍了一下如何实现前台验证,并没有涉及后台验证remot ...
- EasyUI表单验证,自定义插件验证,自定义js插件验证,远程验证,常见手机号,中英文,qq等验证规则验证
{ field : 'startPort', title : "起始端口", editor: "text", width : 50, editor: { ...
- 在jsp页面中设置了远程验证,在初始化时必须预先调用一次。
参考链接:http://code.taobao.org/p/sztaotao/diff/5/trunk/code/src/main/webapp/webpage/modules/sys/roleFor ...
- Atitit web remote远程调试的原理attilax总结
Atitit web remote远程调试的原理attilax总结 Jvm是vm打开一个debug port,然后ide先连接..然后执行url,就会vm会与ide沟通.. Php的xdebug po ...
随机推荐
- UP UP UP!(dp)
UP UP UP! Time Limit: 1 Sec Memory Limit: 128 MB Submit: 92 Solved: 27SubmitStatusWeb Board Descri ...
- Base64编码和解码算法
Base64么新鲜的算法了.只是假设你没从事过页面开发(或者说动态页面开发.尤其是邮箱服务),你都不怎么了解过,仅仅是听起来非常熟悉. 对于黑客来说,Base64与MD5算法有着相同的位置.由于电子邮 ...
- 具体解释EBS接口开发之物料导入API
create_item inv_item_grp.create_item(p_commit => fnd_api.g_true, -- p_item_rec => l_item_rec, ...
- [置顶] SSO单点登录系列6:cas单点登录防止登出退出后刷新后退ticket失效报500错
这个问题之前就发现过,最近有几个哥们一直在问我这个怎么搞,我手上在做另一个项目,cas就暂时搁浅了几周.现在我们来一起改一下你的应用(client2/3)的web.xml来解决这个2b问题,首先看下错 ...
- rem布局下使用背景图片和sprite图
现在移动端页面用rem布局已经是一大流派了,成熟的框架如淘宝的flexiable.js,以及更轻量级的hotcss.用rem作单位使得元素能够自适应后,还有一块需要关注的,那就是背景图片.本文就来聊聊 ...
- mysql密码忘记如何处理
1,修改/etc/my.cnf添加添加skip-grant参数,重启mysql. 2,登录mysql mysql -uroot 3, 更新user中root的密码 use mysql; upd ...
- Hibernate 关联关系映射实例
双向多对一/一对多(many-to-one/one-to-many) 例子,多个学生对应一个班级,一个班级对应多个学生: 班级类,Grade.java: public class Grade { pr ...
- HDU 1194 - Beat the Spread!
给两数之和和两数之差,求两数,两数还必须同奇偶 #include <iostream> using namespace std; int main() { int a,b,t; cin&g ...
- discuz二次开发笔记(三)------discuz的安装步骤
下载好discuz的安装包后,解压在自己定义的文件夹里面,将upload里面的文件拷贝出来放到和upload同级的地方,然后删除upload文件夹. 打开浏览器,输入你文件夹的地址:如:http:// ...
- window.location.href("url") 无法在chrome和Firefoxz中使用
今天在js代码中加了一句window.location.href(‘url’)希望实现页面的跳转,IE中可以正常使用,但是Firefox却提示window.location is not a func ...