У меня есть PersonController и представление с именем «Добавить» в папке «Персона» в «Представлениях».
Представление «Добавить» принимает заголовок, имя, фамилию и номер телефона.Название представляет собой выпадающий список с предварительно заполненными значениями.Чтобы получить этот выпадающий список, я вызываю
<% Html.RenderAction("Titles", "Person");
Когда вызывается это действие, он возвращает PartialView.PartialView - это раскрывающийся список предварительно сконфигурированных заголовков.
Сценарий:
У меня есть два действия контроллера с именем «Добавить» (одно получение и одно сообщение).В HttpGet он загружает пустую форму, по существу, с выпадающим списком заголовков, пустыми текстовыми полями и т. Д. Когда пользователь нажимает кнопку загрузки, он вызывает «Добавить» HttpPost.Внутри этого действия я делаю некоторую проверку валидации, проверяя, заполнили ли они обязательные поля и т. Д. Если поля не заполнены, я добавляю ошибку в ModelState:
if(string.IsNullOrEmpty(firstName))
{
ModelState.AddModelError("person", "Person first name is required.");
}
Если состояние модели неvalid, я возвращаю View, чтобы пользователь мог видеть сообщения об ошибках валидации.
Действие корректно отображается при условии, что ModelState действителен, если возникает ошибка, и я добавляю ошибку вModelState и возвращение View из действия HttpPost, HttpException генерируется при отображении:
Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'.
Сообщая мне, что действие с именем "Titles" не может быть найдено на контроллере "Person".Очевидно, я знаю, что он там есть, потому что он выполнялся очень хорошо, пока в ModelState не было ошибок.
Есть идеи?