#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>