与mvc.net一样,在呈现视图后会引发一个事件

时间:2010-12-10 19:16:46

标签: asp.net-mvc pipeline

我正在将一个asp.net webforms应用程序移植到mvc.net。我有一个OR框架,需要在执行任何数据库操作之前创建DataSession对象。

在我当前的webform应用程序中,我在Page_Init事件期间实例化DataSession,并在Page_UnLoad事件期间清除对象。

我正在寻找与mvc.net类似的东西。我最初开始使用OnACtionExecuting(在操作之前引发)和OnActionExecuted(在操作之后引发)。但是,在呈现页面期间,由于DataSession不再可用,因此有一些实体的延迟加载失败。我需要的是在渲染视图后会触发的内容。

3 个答案:

答案 0 :(得分:5)

您不应该在视图页面中进行延迟加载。这意味着视图访问打破MVC整个点的数据。

相反,您应该获取控制器中的全部数据,然后将其传递给您的视图。

答案 1 :(得分:2)

OnActionExecuting中加载数据库连接,然后在OnResultExecuted中卸载。

虽然我会在global.asax中使用Application_BeginRequestApplication_EndRequest

答案 2 :(得分:1)

我之前没有使用过这些方法,但可能会考虑重写OnResultExecuted或OnResultExecuting。