如果必须在mvc中提供类似表单输入体验的向导,您将如何抽象页面流?
研究后重定向获取模式。
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
将其与强大的域模型(用于跟踪步骤或表单完成状态或任何您称其为它的模型)一起使用时,您会感到很满意。
我将页面流留给了我认为它属于的视图,因此不同的视图可能具有不同的页面流(例如,针对台式机浏览器客户端或手机客户端等)。我在博客上写下了它:使用ASP的RESTful向导.Net MVC ...也许?
为了保持这些步骤,您可以实现页面流操作过滤器,该过滤器提供了类似的体验:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| [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();
} |
1 2 3 4 5 6 7 8 9 10 11
| public class CreateAccountWizardController : Controller
{
public ActionRresult Step1()
{
}
public ActionResult Step2()
{
}
} |
有几种方法,可以为向导过程的每个步骤创建一个动作,或者创建一个传递给action方法的参数。就像步骤一样,它将使您知道向导的状态。