代码之家  ›  专栏  ›  技术社区  ›  griegs

在jquery post中获取sessionid

  •  1
  • griegs  · 技术社区  · 14 年前

    我正在执行jquery$.post(“/home/jqueryrateformitem”,但当我到达控制器时,每个日志上的会话ID总是不同的。

    我试过了;

            string g = HttpContext.Session.SessionID;
            string session = base.Session.SessionID;
    

    我很确定会话ID不应该改变,但我一辈子都不能考虑如何解决这个问题。

    编辑

    当我将索引页刷新为weel时,就会发生这种情况,所以不仅仅是在Ajax回发上。我用的是卡西尼而不是IIS,尽管这是我第一次遇到问题

    1 回复  |  直到 14 年前
        1
  •  3
  •   Darin Dimitrov    14 年前

    我看不出你的代码有什么问题,也无法重现你描述的行为。默认情况下,会话由cookie跟踪,因此请确保您已在浏览器上启用cookie,或者它可能会在每个请求上创建一个新会话。

    还要确保将值存储到会话中,否则将不会创建会话cookie。以下面的控制器为例:

    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewData["Message"] = base.Session.SessionID;
            return View();
        }
    
        public ActionResult About()
        {
            return View();
        }
    }
    

    首先导航到 Home 动作,然后转到 About 当你回到 会话ID更改。这很正常,因为会话中没有存储任何内容。如果你只是设置了一些值 Session["foo"] = "bar"; 它将工作,因为会话cookie将由服务器设置。