Моя установка:Следует ли использовать RenderAction с формами?
- имеют вид на маршрут, как:
/Pages/Details/2
- Детали страницы просмотра имеет
<% Html.RenderAction("CreatePageComment", "Comments"); %>
, чтобы сделать форму для написания комментария - сообщения Комментарий формы для
Comments/CreatePageComment
/Comments/CreatePageComment
возвращаетсяRedirectToAction
когда комментарий успешно создан- Все это прекрасно работает
Мой вопрос:
Если ошибка проверки, как я должен вернуться к /Pages/Detail/1
и показать ошибку в форме комментария?
- Если я использую
RedirectToAction
, кажется, проверка достоверна; должен ли я использовать шаблон Post-Redirect-Get для ошибок проверки, а не просто вернуться? - Если я вернусь
View()
, он возвращает меня обратно к показуCreateComment.aspx
(с проверкой, но только форма на белой странице), а не маршрут/Pages/Details/2
, который называетсяRenderAction
.
Если шаблон PRG должен использоваться, тогда, я думаю, мне просто нужно научиться валидации при использовании PRG. Если не —, и для меня это кажется лучше обработанным возвратом View()
—, то я не знаю, как вернуть пользователя в исходное представление, показывая ошибки формы, используя RenderAction
.
Это похоже на игру, в которой вы постукиваете головой и втираете живот в одно и то же время. Я тоже не был хорош в этом. Я новичок в MVC, так что, скорее всего, проблема здесь.
BTW: Я мог бы сделать это, просто используя Partial и POST route/Page/CreateComment, но разве это не беспорядочно? Я хочу, чтобы мои комментарии контроллера обрабатывали комментарии, а не контроллер страницы. Как ни странно, я только что просмотрел код двигателя блога Oxite, и их контроллер Post обрабатывает добавление комментариев; их контроллер комментариев даже не имеет действия «Создать»! –