我的应用程序向 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/