我有一个非常大的(77 个动作)控制器,我用它来制作一个具有类似向导功能的网站。该站点就像一个“工作应用程序管理器”,具有多个组件,例如管理组件和最终用户组件。我正在使用的组件是用户实际填写工作申请的部分。事物与其他组件的结构方式,将所有作业应用程序的东西放在同一个控制器中是最有意义的。所有这些操作都执行类似的操作,但在不同的模型上,如下所示:
public class ExampleController : Controller
{
public ActionResult Action1()
{
Guid appId = new Guid(Session["AppId"].ToString());
... // logic to pull up correct model
return View(model)
}
[HttpPost]
public ActionResult Action1(FormCollection formValues)
{
Guid appId = new Guid(Session["AppId"].ToString());
... // logic to update the model
return RedirectToAction("Action2");
}
public ActionResult Action2()
{
Guid appId = new Guid(Session["AppId"].ToString());
... // logic to pull up the correct model
return View(model)
}
... // on and on and on for 74 more actions
}
有什么办法可以减少每一个动作中的一些持续冗余?这是我的想法:
- 创建一个成员变量 Guid 来存储 appId,然后覆盖 OnActionExecuting 来填充这个变量。这是一个好主意吗?
- 实现某种分页以减少操作的数量。关于如何做到这一点的任何建议?