проверка на стороне клиента не работает в asp.net mvc

#asp.net #asp.net-mvc-3 #validation

#asp.net #asp.net-mvc-3 #проверка

Вопрос:

Кажется, я не могу заставить проверку на стороне клиента работать в 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, и в моем классе модели просто есть поле, которое требуется, но проверка на стороне клиента не запускается. Он всегда отправляет обратно. Есть идеи?

Комментарии:

1. Можете ли вы опубликовать модель, для которой вы ожидаете проверки?

2. Проверка действительно происходит. Это просто происходит на стороне сервера. Это не происходит на стороне клиента.

Ответ №1:

Что вы используете в своей модели для проверки? Вот быстрый и простой способ:

 using System.ComponentModel.DataAnnotations;

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

Теперь, по вашему мнению, для этой модели, если у вас есть ссылки на необходимые сценарии, должна быть проверка на стороне клиента. Все дело в [Required] атрибуте.

Комментарии:

1. В настоящее время я просто использую классы, созданные 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>