MVC中使用远程验证(jquery validte)

6 篇文章 0 订阅
2 篇文章 0 订阅

在模型中 我们可以这样定义modal

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
namespace Models
{
    public class LoginViewModel{
        [Remote("getnickname", "data", ErrorMessage = "用户已存在!"/*, HttpMethod = "get"*/)]
        [Required(ErrorMessage = "请输入用户名")]
        [RegularExpression(@"^[a-zA-Z0-9_]{4,}$", ErrorMessage = "由a-zA-Z0-9_构成,最少四位")]
        [Display(Name = "用户名")]

        public string UserName { get; set; }

    }
}

在datacontroller里我们可以这样定义

    public class DataController : Controller
     {
         EntityContainer db =new EntityContainer();
        public ActionResult getnickname()
        {
            string nickname = Request.QueryString["UserName"];
            var number = db.Nf_Users.Where(m => m.user_name == nickname).Count();
           // string value = number == 0 ? "true" : "false";
            //  return Content(value);
            return Json(number == 0, JsonRequestBehavior.AllowGet);

        }

在cshtml

    @using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @class = "form-horizontal", id = "registerForm", role = "form" }))
    {
        @Html.AntiForgeryToken()
        <div class="form-group">
            @Html.LabelFor(m => m.UserName, new { @class = "col-md-2 control-label" })
            <div class="col-md-10">
                @Html.TextBoxFor(m => m.UserName, new { @class = "form-control" })*
                @Html.ValidationMessageFor(m => m.UserName)
            </div>
        </div>
}

好了,完成。当然我们在

[Remote("getnickname", "data", ErrorMessage = "用户已存在!"/*, HttpMethod = "get"*/)]

中也可以定义 HttpMethod = “post”

这样省得我们在script标签下使用validte语句

            校验
            $("#registerForm").validate({
                rules: {
                    UserName: {
                        // required: true,
                        remote: {
                            url: "/data/getnickname",
                            type: "get",
                            data: {
                                nickname: function () {
                                    return $("#UserName").val();
                                }
                            }
                        }
                    },
                    UserPhone: {
                        // required: true,
                        remote: {
                            url: "/data/getphone",
                            type: "get",
                            data: {
                                phone: function () {
                                    return $("#UserPhone").val();
                                }
                            }

                        }
                    }

                },
                messages: {
                    UserName: {
                        remote: "用户已存在"
                    },
                    UserPhone: {
                        remote: "手机已存在"
                    }
                },
                success: function () {
                    // alert("success!");
                },
                submitHandler: function (form) { form.submit(); }

            });
使用这一招的代价就是mvc的验证功能被屏蔽,根本无法运行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值