我正在寻找一种方法来防止在我向控制器发布AJAX帖子时刷新SessionState。
如果SessionState已过期,则此控制器返回JSON true / false对象。
Public Class JsonController
Inherits BaseController
Function SessionCheck()
If Session("Contact") Is Nothing Then
Return Json(JsonResponseFactory.ErrorResponse("Invalid contact"))
End If
Return Json(JsonResponseFactory.SuccessResponse())
End Function
End Class
使用Javascript:
function session_check_function() {
if (!session_check_complete)
return;
session_check_complete = false;
jQuery.post(
base_url + 'json/SessionCheck',
{},
function (data) {
if (!data.Success) {
jQuery('#session-modal').modal('show');
} else {
jQuery('#session-modal').modal('hide');
}
session_check_complete = true;
}
).fail(function () {
jQuery('#session-modal').modal('show');
session_check_complete = true;
});
}
var session_check_complete = true;
var session_check = setInterval(function () { session_check_function(); }, 2500);
问题是每次我对控制器进行POST时会话都会保持刷新,我不希望它刷新。
答案 0 :(得分:4)
您可以在控制器上使用Sessionstate
属性,以防止它刷新会话超时。
[SessionState(System.Web.SessionState.SessionStateBehavior.Disabled)]
public class JsonController : BaseController
或者在VB.Net中:
<SessionState(System.Web.SessionState.SessionStateBehavior.Disabled)>
Public Class JsonController Inherits BaseController
当然,这是在控制器上设置的,因此该控制器中的任何其他方法也不会刷新会话超时。
<强>更新强>
在挖掘了一下之后,我找到了this article,它引入了一种定义每个动作方法的会话状态行为的方法。另一种解决方案可以在Disable Session state per-request in ASP.Net MVC