我正在将一个asp.net webforms应用程序移植到mvc.net。我有一个OR框架,需要在执行任何数据库操作之前创建DataSession对象。
在我当前的webform应用程序中,我在Page_Init事件期间实例化DataSession,并在Page_UnLoad事件期间清除对象。
我正在寻找与mvc.net类似的东西。我最初开始使用OnACtionExecuting(在操作之前引发)和OnActionExecuted(在操作之后引发)。但是,在呈现页面期间,由于DataSession不再可用,因此有一些实体的延迟加载失败。我需要的是在渲染视图后会触发的内容。
答案 0 :(得分:5)
您不应该在视图页面中进行延迟加载。这意味着视图访问打破MVC整个点的数据。
相反,您应该获取控制器中的全部数据,然后将其传递给您的视图。
答案 1 :(得分:2)
在OnActionExecuting
中加载数据库连接,然后在OnResultExecuted
中卸载。
虽然我会在global.asax中使用Application_BeginRequest
和Application_EndRequest
。
答案 2 :(得分:1)
我之前没有使用过这些方法,但可能会考虑重写OnResultExecuted或OnResultExecuting。