【发布时间】:2014-08-11 14:42:40
【问题描述】:
我有一个具有 MVC 控制器和 WepAPI 2 控制器的 Web 服务。
MVC 控制器的工作是为局部视图呈现和返回 HTML。一个不同的 MVC 应用程序进行该调用,然后将生成的 HTML 嵌入到它自己的页面中。
部分视图包含一些调用 WebAPI 控制器以临时存储数据的控件。为此,我使用Global.asax.cs 中的代码在 WebAPI 控制器中启用了会话:
protected void Application_PostAuthorizeRequest() {
HttpContext.Current.SetSessionStateBehavior(
System.Web.SessionState.SessionStateBehavior.Required);
}
当调用应用程序调用 MVC 控制器时,它会将模型传递给它。该模型包含部分视图上的控件需要显示的一些初始数据。这与控件将使用 WebAPI 控制器创建/更新/删除的数据相同。我想将模型中的数据放入会话中,以便局部视图中的控件能够读取/更新/删除这些数据。
我的问题是:有什么方法可以让 MVC 控制器访问 WepAPI 会话?或者有什么方法可以让 WebAPI 控制器使用与 MVC 控制器相同的会话?
【问题讨论】:
-
尽量避免像这样将状态强加到您的应用程序中 - 将您需要发送到 ApiController 的数据作为隐藏字段或数据属性放入视图中,这样您就可以在不依赖会话状态的情况下发送它们。
-
我不能。部分视图中的控件是依赖于具有 CRUD 方法的服务器的 Kendo 网格。为了让网格正常工作,我必须将数据存储在服务器上。
标签: asp.net-mvc session asp.net-mvc-5