我正在MVC应用程序中进行修改,以禁止用户在单个 session 中打开多个选项卡/窗口。
我正在引用this article (click here)来做到这一点。
本文是为asp.net编写的,而我需要为ASP.NET MVC实现此功能。
我认为这在MVC中应该是可能的,但是,我不确定应该怎么做来重写它
if(window.name != "<%=GetWindowName()%>")
GetWindowName()是我在Controller中创建的函数,它从Session对象返回“WindowName”键的值。如何在上面的javascript中读取其值?
最佳答案
您可以为此编写一个 Controller 方法:
public ActionResult GetWindowName()
{
Session["WindowName"] =
Guid.NewGuid().ToString().Replace("-", "");
return Json(Session["WindowName"].ToString());
}
然后通过ajax调用它:
$.get('@Url.Action("GetWindowName")', function(data){
if(window.name != data) {
// do what you need to do here
}
})