У меня есть приложение MVC 5, и я использую аннотации данных, чтобы выполнить большую часть проверки. Одним из свойств в моем классе выглядит следующим образом:MVC5 - Аннотации данных - проверка на стороне клиента не происходит?
[Required(ErrorMessage = "Please enter a business name")]
[StringLength(80)]
public string BusinessName { get; set; }
Валидация работает, но не по всей видимости, происходит в браузере, как я думал, что это должно быть. На моей странице есть кнопка «Сохранить». Если я оставить поле Бизнес Имя пустым и нажмите кнопку Сохранить, пост делается для метода контроллера, который выглядит, частично, следующим образом:
[HttpPost]
public ActionResult Create(Advertiser advertiser, FormCollection collection, HttpPostedFileBase file)
{
// Before we do anything, let's check to make sure any validation that's already been done is clean.
if (!ModelState.IsValid)
{
return View(advertiser);
}
...
...
}
Когда этот метод выполняется, то состояние модели уже установлен на недействительные. Это хорошо, потому что это неверно, потому что поле «Бизнес-имя» пуст. Однако не следует ли это проверять на клиенте?
поле в моем .cshtml файл выглядит следующим образом (используя Bootstrap):
<div class="form-group">
@Html.Label("Business Name", new { @class = "control-label col-md-3" })
<div class="col-md-9">
@Html.TextBoxFor(model => model.BusinessName, new { @class = "form-control", title = "", autofocus = true })
@Html.ValidationMessageFor(model => model.BusinessName)
</div>
</div>
Мой Web.Config правильно устанавливается следующим образом:
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
Какова ваша разметка cshtml? (ваш взгляд ... что такое код) –
@Ahmedilyas - Я изменил свой пост, чтобы добавить разметку. –
Возможный дубликат [MVC3 Проверка на стороне клиента не работает] (http://stackoverflow.com/questions/4706174/mvc3-client-side-validation-not-working) –