【问题标题】:Use ASP.NET MVC validation by Jquery通过 Jquery 使用 ASP.NET MVC 验证
【发布时间】:2014-04-19 10:42:38
【问题描述】:

我想显示验证写入 Viewmodel 的 DOM 元素的验证消息:

我的视图模型代码如下::

 public class HotelDetailViewModel
    {
        public long DocumentHotelID { get; set; }
        [Required(ErrorMessage = "Please enter Check In Date")]
        public string CheckInDate { get; set; }
        [Required(ErrorMessage = "Please enter Room Type")]
        public string RoomType { get; set; }
        [Required(ErrorMessage = "Please enter Nights")]
        public int Nights { get; set; }
    }

我还将 Razor 验证器用作:

@Html.ValidationMessageFor(Model => Model.CheckInDate)

但我想在客户端本身进行验证,而不进行任何提交。 因为我在页面上有两个表单,只能提交一个表单,而对于其他表单,我必须在客户端使用 Jquery 做一些事情, 我在问。 提前致谢。

【问题讨论】:

    标签: jquery asp.net-mvc asp.net-mvc-3 model-view-controller


    【解决方案1】:

    要使用 jQuery Validation 插件启用即时验证,请在您的视图中使用此代码

    $('#myform').validate({
    onfocusout: function(element) {
        $(element).valid();
    }
    });
    

    【讨论】:

      【解决方案2】:

      在 MVC 中,要在客户端支持 DataAnnotation 验证,您只需要将这个 javascript 文件 **jquery.unobtrusive-ajax.js、jquery.validate.min.js、jquery.validate.unobtrusive.min.js

      可以渲染为

       @Scripts.Render("~/bundles/jqueryval")
      

      【讨论】:

      • 正确阅读问题,然后回答。
      • 此 javascript 文件将验证模型,无需提交
      【解决方案3】:

      如果您已经准备好使用 jquery.validate.min.js,您可以在客户端添加验证规则。

      <script src="jquery.validate.min.js" type="text/javascript"></script>
      

      示例

      @using (Html.BeginForm("action", "controller", new { Id = "ClientForm" }, FormMethod.Post))
      {
      
          @Html.LabelFor(m => m.UserName)
          @Html.TextBoxFor(m => m.UserName)
      
          <input type="submit" value="Log in" />
      }
      

      添加验证规则

      <script>
          $("#ClientForm").validate({
              rules: {
                  'UserName': {
                      required: true,
                      maxlength: 20
                  }
              },
              messages: {
                  'UserName': {
                      required: 'Title required',
                      maxlength: 'Must be under 20 characters'
                  }
              }
          });
      </script>
      

      【讨论】:

        猜你喜欢
        • 2011-07-17
        • 1970-01-01
        • 2010-12-05
        • 2011-05-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-31
        • 1970-01-01
        相关资源
        最近更新 更多