Как мне обрабатывать поток страниц в MVC (особенно asp.net)

Если бы вам пришлось предоставить мастер, подобный опыту ввода формы в mvc, как бы вы абстрагировали поток страницы?

Ответов (5)

Решение

Изучите шаблон 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

Используйте это вместе с надежной моделью предметной области (для отслеживания шагов или состояния завершения формы, или как вы это называете), и вы будете золотыми.

Есть несколько способов: создать действие для каждого шага процесса мастера или создать параметр, который передается методу действия. Подобный шаг , который позволит вам узнать, в каком состоянии находится мастер.

public class CreateAccountWizardController : Controller
{
   public ActionRresult Step1()
   {
   }


   public ActionResult Step2()
   {
   }
}

Чтобы сохранить шаги, вы можете реализовать фильтры действий потока страницы, которые обеспечивают такой опыт:

[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… Возможно?