Я изучаю MVC 3 в нерабочее время прямо сейчас, и прошлой ночью я столкнулся с проблемой, которая кажется очень простой, но не могу найти решение для нее.
У меня есть простая контактная форма. Конечный пользователь заполняет форму и отправляет ее. Когда они отправляют форму, я перенаправляю конечного пользователя к другому действию в том же контроллере, который отображает страницу / представление "запрос отправлен", который по сути является страницей "Спасибо".
Контроллер настроен так.
public ActionResult ContactUs()
{
return View();
}
[HttpPost]
public ActionResult ContactUs(ContactInfo contactInfo)
{
if (!ModelState.IsValid)
{
return View();
}
//perform some business logic
return RedirectToAction("InquirySubmitted",contactInfo);
}
public ActionResult InquirySubmitted(ContactInfo contactInfo)
{
return View(contactInfo);
}
Проблема:
Я не хочу, чтобы конечные пользователи переходили непосредственно к действию InquirySubmitted через браузер.
Я только хочу, чтобы действие ContactUs в контроллере могло отправлять пользователей в представление InquirySubmitted.
Я попытался сделать действие InquirySubmitted частным, чтобы его мог вызывать только контроллер:
private ActionResult InquirySubmitted(ContactInfo contactInfo)
Но это приводит к ошибке, которую я полностью понимаю, потому что заставляю браузер запрашивать отправку InquirySubmitted с помощью RedirectToAction ().
Так что мой вопрос прост: каково лучшее решение в стиле «MVC 3» для этой проблемы.