МодельКак я могу получить ValidationMessageДля работы? C# MVC4 Бритва
public class ViewModelA
{
[Display(Name = "User Name")]
[Required(ErrorMessage = "User Name Required")]
public string UserName { get; set; }
public ViewModelA() { }
}
Посмотреть
@using (Html.BeginForm("Register", "Account", FormMethod.Post))
{
@Html.ValidationSummary()
<div>@Html.LabelFor(m => m.UserName)</div>
<div>@Html.TextBoxFor(m => m.UserName)</div>
<div>@Html.ValidationMessageFor(m => m.UserName)</div>
<div><input type="submit" value="SUBMIT" /></div>
}
Контроллер
[HttpPost]
public ActionResult Register(ViewModels.ViewModelA model)
{
if (ModelState.IsValid)
{
// Do Something
}
else
{
// Do Something Else
}
ModelState.Clear();
return View(model);
}
Сначала я думал, что это было, потому что у меня не было jquery.validate.min.js
или jquery.validate.unobtrusive.min.js
, но я включил их, и он ничего не сделал. Затем я попробовал сочетание @Html.ValidationSummary()
. Все, что я вижу в stackoverflow, говорит, что я должен работать, но это не так. Что я делаю не так?
код, который вы показали, прекрасно работает если у вас есть 'jquery',' 'jquery.validate' и jquery.validate.unobtrusive' загружен правильно (и есть не отключена проверка на стороне клиента в файле 'web.config'). Если оставить текстовое поле «UserName» пустым и нажать кнопку «Отправить», появится сообщение об ошибке, и он будет отменен. Но почему вы делаете 'ModelState.Clear();' в методе POST и возвращаете представление (которое удалит все ошибки проверки)? –
@StephenMuecke - я хочу в конечном итоге установить сообщение, и единственный способ для поля иметь значение, заполненное контроллером, - использовать ModelState.Clear(); от того, с чем я экспериментировал. – Khaltazar
Непонятно, что вы здесь делаете. Почему вы используете 'ModelState.Clear();'? Если вы отправляете и «ModelState» является действительным, вы сохраняете и перенаправляете (и перенаправляете обратно к тому же методу GET, если хотите, чтобы тот же вид), или если он недействителен, вы возвращаете представление (без ошибок очистки), чтобы ошибки были и пользователь может их исправить. –