zoukankan      html  css  js  c++  java
  • .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 > 10)
                {
                    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个小时,崩溃!

  • 相关阅读:
    文本框小写变大写控制
    SQL2005 递归查询示例,非常方便
    GridView分页后进行添加,删除操作后,仍返回到当前页码
    从ASP.NET 1.1升级到ASP.NET 2.0要考虑的Cookie问题
    英语常用口语
    ASP.NET会话(Session)保存模式
    .NET2005文档自动生成
    JavaScript 弹出窗口总结
    SQL SERVER和SYBASE的渊源
    A versatile HDR Video Production System笔记
  • 原文地址:https://www.cnblogs.com/yeye518/p/3373558.html
Copyright © 2011-2022 走看看