gpt4 book ai didi

c# - 如何在 Ajax 调用后更新 session ?

转载 作者:太空宇宙 更新时间:2023-11-03 10:42:10 25 4
gpt4 key购买 nike

我的应用程序向 API Controller 发出大量请求。我遇到的问题是我的 APIController 无权访问当前 session (这 - 它不应该)。但是由于调用是在页面加载后通过 javascript 进行的 - 我不知道如何告诉我的应用程序更新 session 。

在从 ajax 调用接收到更新数据后,处理 session 值更改的公认方法是什么?

例子:

public static class SessionManager
{
public static User CurrentUser
{
get
{
return (User)HttpContext.Current.Session["CurrentUser"];
}
set
{
HttpContext.Current.Session["CurrentUser"] = value;
}
}
}

public class SomeController : ApiController
{
public HttpResponseMessage DeleteSomething(SomeModel model)
{
// Do work
}
}

然后在 View 中

$.ajax({
type: 'DELETE',
url: '{PATH TO API}',
data: { the data },
traditional: true,
success: function (response) {
// Now I need to update the user stored in the session
// How do I do that?
} else {
}
});

最佳答案

你是对的。 Web API 有意禁用 session ,因为它是符合 REST 标准的 API,而 REST 是无状态的。坦率地说,据我所知,无法从 Web API Controller 更改 session 中 MVC 端的值。

但是,您的 AJAX 没有调用 Web API,您可以轻松地创建一个响应 AJAX 请求的 MVC Controller 操作,并且您> 当然可以从那里修改 session 。我认为这将是您唯一的选择。

关于c# - 如何在 Ajax 调用后更新 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24959967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com