【问题标题】:client side validation not working in asp.net mvc客户端验证在 asp.net mvc 中不起作用
【发布时间】:2011-12-19 22:42:27
【问题描述】:

我似乎无法让客户端验证在 asp.net mvc3 应用程序中工作。在配置中我有

 <add key="ClientValidationEnabled" value="true" />
  <add key="UnobtrusiveJavaScriptEnabled" value="true" />

在我的 _Layout.cshtml 中有

 <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>

在我的页面中有

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

我只是在使用 mvc 3 和 ef 4,而我的模型类只有一个字段,但客户端验证没有触发。它总是发回。有什么想法吗?

【问题讨论】:

  • 你能发布你期望验证的模型吗?
  • 验证确实发生了。它只发生在服务器端。它不会发生在客户端。

标签: asp.net asp.net-mvc-3 validation


【解决方案1】:

您在模型中使用什么进行验证?这是一种快速简便的方法:

using System.ComponentModel.DataAnnotations;

namespace YourNs
{
    public class YourModel
    {
        [Required]
        public string SomeRequiredString { get; set; }
    }
}

现在,在您对该模型的看法中,如果您引用了必要的脚本,则应该进行客户端验证。这一切都通过[Required] 属性实现。

【讨论】:

  • 目前,我只是使用 EF 生成的类。当它回发时,它确实验证了必填字段,只是客户端应该被触发,而不是
【解决方案2】:

我不知道你的情况是否可行,但我通过调用 .validate() 函数得到验证:

  var validator = $('#formData').validate();
       if ($('#formData').valid()) {
          //alert('valid');
          return true;
  }

希望对你有帮助

【讨论】:

    【解决方案3】:

    确保这些appSettings 位于您的根目录Web.config

    <appSettings>
        <add key="ClientValidationEnabled" value="true" />
        <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    </appSettings>
    

    【讨论】:

      猜你喜欢
      • 2014-03-25
      • 2014-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-03
      • 2013-01-09
      相关资源
      最近更新 更多