2010-05-02 62 views
1

什么是最终的解决方法)在ASP.NET MVC应用程序中坚持'Conversational state'的最佳实践是什么? ?

期望中的场景是:

  1. 多步的形式。
  2. 如果一个页面上有标签,标签应该坚持自己的'的视图状态”
  3. 无论导航用户选择
  4. ,它应该不会影响(更恰当,bother)会话状态管理。

这些只是几个方面,但我觉得它们实际上有很大的相关性。

+0

什么是“会话状态”? – Pierreten 2010-05-02 05:44:11

+0

这是有关当前用户和Web应用程序对话的信息。我的意思是,这包括任何东西:从用户的身份,通过当前交互的有效模式,到视觉元素的期望状态(在ASP.NET WebForms中称为viewstate) – Bubba88 2010-05-02 05:47:53

回答

1

我曾经在Asp.Net MVC中使用过Wizard类型的窗体,在这种情况下做的最好的事情是使用Model/ModelBinding来跟踪窗体输入。

我们可以创建一个控制器操作链(对于每个步骤),每个步骤的输出模型用作下一个步骤(操作)的输入模型。

例如,如果我们有三个步骤来创建用户。然后UserController可以为每个步骤执行操作。

public ActionResult Step1() 
{ 
    User user = new User(); 
    return View(user); 
} 

[Post] 
public ActionResult Step1(User user) 
    { 
     //perform business validation 
     RedirectToAction<UserController>(u => Step2(user)); 

    } 

之后Step2操作将接管来自Step1的修改后的用户并可以呈现其自己的视图等等。

1

不确定“解决方法”,但你有没有考虑过使用AJAX和jQuery?根据您列出的要求,两者都是适当的。

+0

希望我从不使用AJAX和JavaScript,但使用+1提及standart fallback选项:) – Bubba88 2010-05-08 06:54:24