我在剃刀视图中写了一个函数来检查会话是否存在
@functions {
public static bool CheckSession()
{
return System.Web.HttpContext.Current.Session["UserID"] == null;
}
}
现在我所做的是,我希望在发送会话之前检查ajax是否存在。如果不存在则将用户重定向到登录
$.ajaxSetup({
beforeSend: function (xhr) {
var isSession = '@CheckSession()';
}
});
但问题是,在之前的事件中我想每次重新评估它。
答案 0 :(得分:0)
你不能像这样实现它。在返回html响应之前,@ {}块中的代码由服务器端的razor引擎评估。在任何情况下,您都必须进行服务器端调用以重新评估该方法。
您可以通过两种方法完成此操作 -
1)始终单独调用ajax来检查会话。但这很糟糕。
第二个更好的解决方案是
2)您可以使用自定义属性修饰控制器/操作。然后检查该属性中的会话有效性并返回特定响应。检查ajax成功回调中的响应值并重定向到登录页面。