Я согласен с тем, что атрибут DataType не выполняет никаких проверок. Но у вас есть атрибут Required, который должен работать.
У вас должна быть форма для отображения элементов управления вашими свойствами. Когда форма будет опубликована, нажмите «Отправить».
Предположим, ваша форма размещена по методу ниже.
[HttpPost]
public ActionResult SaveRegisterDetails(Register registerDetails)
{
if (ModelState.IsValid)
return View();
else
return View("Index", registerDetails);
}
Передайте ваш объект ViewModel в качестве параметра. Все значения, отправленные из формы, будут присутствовать в этом объекте. Затем проверьте ModelState, является ли он действительным или нет. Если он недействителен, верните то же представление, из которого была отправлена форма, и передайте объект ViewModel в качестве параметра.
Если вы используете EditorForModel или DisplyForModel, то используйте помощник ValidationSummary для отображения сообщений об ошибках в пользовательском интерфейсе.