Как мне обрабатывать поток страниц в MVC (особенно asp.net)
-
08-06-2019 - |
Вопрос
Если бы вам пришлось предоставить мастер, подобный вводу формы в mvc, как бы вы абстрагировали поток страниц?
Решение
Изучите шаблон post-redirect-get.
http://weblogs.asp.net/mhawley/archive/tags/MVC/default.aspx
http://devlicio.us/blogs/tim_barcz/archive/2008/08/22/prg-pattern-in-the-asp-net-mvc-framework.aspx
Используйте это вместе с надежной моделью предметной области (для отслеживания шагов или состояния завершения формы или как вы это называете), и вы будете золотыми.
Другие советы
Чтобы сохранить шаги, вы можете реализовать фильтры действий потока страниц, которые обеспечивают такой опыт:
[RequiredStep(FlowStart = true)]
public ActionResult Confirm()
{
return View();
}
[RequiredStep (PreviousStep = "Confirm")]
public ActionResult ExecuteOrder()
{
return RedirectToAction("ThankYou");
}
[RequiredStep(PreviousStep = "ExecuteOrder")]
public ActionResult ThankYou()
{
return View();
}
Я оставил поток страниц до представления, которому, по моему мнению, оно принадлежит, поэтому разные представления могут иметь разные потоки страниц (например,для клиентов браузера для настольных компьютеров или клиентов для мобильных телефонов и т. д.) Я написал это в своем блоге: Мастер RESTful с использованием ASP.Net MVC… Возможно?
public class CreateAccountWizardController : Controller
{
public ActionRresult Step1()
{
}
public ActionResult Step2()
{
}
}
Есть несколько способов: создать действие для каждого шага процесса мастера или создать параметр, который передается в метод действия.Нравиться шаг это позволит вам узнать, в каком состоянии находится мастер.