Я читаю учебники и пытаюсь привыкнуть к использованию ViewModels и Validation. Я не уверен, будет ли валидация проходить по основной модели или модели просмотра, я бы предположил, что это будет в ViewModel. Но, похоже, не имеет смысла добавлять проверку на ViewModel, если я пытаюсь наследовать свойство класса, поэтому я оставил его на самой модели, но ошибки не отображаются. Возможно, модели неэффективны и их нужно немного перестроить?Проверка на модели или модели просмотра?
NameModel
public class name {
[StringLength(50, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 3)]
public string first { get; set; }
public string middle { get; set; }
[StringLength(50, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 3)]
public string last { get; set; }
public string otherstuffnotneededontheview { get; set; }
}
RegisterViewModel
public class RegisterViewModel {
public name fname { get; set; }
public name lname { get; set; }
}
Посмотреть
@model Project.ViewModels.RegisterViewModel
@using (Html.BeginForm())
{
<label>
@Html.TextBoxFor(model => model.fname.first)
@Html.ValidationMessageFor(model => model.fname.first)
</label>
<label>
@Html.TextBoxFor(model => model.lname.last)
@Html.ValidationMessageFor(model => model.lname.last)
</label>
<input type="submit" />
}
Контроллер
public ActionResult Register()
{
RegisterViewModel model = new RegisterViewModel();
return View(model);
}
[HttpPost]
public ActionResult Register(RegisterViewModel model)
{
return View(model);
}