无法在MVC 3中设置会话变量

时间:2014-07-15 12:52:05

标签: asp.net-mvc session

我知道我的问题是基本的,但我需要一些回复,因为我在网上尝试了很多解决方案,但我仍然遇到了一些错误。

我在第一个视图中有一个gridPanel。如果单击此视图中的按钮,则所选行将显示在另一个视图中。我需要将这些行的信息发送到服务器,以便我可以在单击按钮的操作中加载一些额外的数据。 要执行该操作,我应该使用Session而不是TempData或ViewBag / ViewData,因为我不知道用户何时会单击该按钮。如果我弄错了,请纠正我。

我的代码是这样的:在客户端使用AJAX我调用一个动作方法来设置会话变量:

Ext.Ajax.request({ url: 'Examples/SetSelectedStations', params: { selectedStations: stationsStr} });

SetSelectedStations控制器中我意识到Session["slectedStations"]总是为空,行为就像从未设置过一样。这是我的控制器动作:

public ViewResult SetSelectedStations(string selectedStations)
        {
            Session["slectedStations"] = selectedStations;
            string ss = Session["slectedStations"] as string;
            // Here ss is null !!!!!!
            return View();
        }

我应该在其他地方定义Session [“slectedStations”]吗? web.confg文件中是否有特殊配置?

请注意我的web.config中的sessionState是这样的:

<sessionState mode="Custom" customProvider="PgSessionStateStoreProvider">
      <providers>
        <clear />
        <add name="PgSessionStateStoreProvider" type="NauckIT.PostgreSQLProvider.PgSessionStateStoreProvider" enableExpiredSessionAutoDeletion="true" expiredSessionAutoDeletionInterval="1800000" enableSessionExpireCallback="false" connectionStringName="AspSQLProvider" applicationName="WebSite1" />
      </providers>
    </sessionState>

0 个答案:

没有答案