我正在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
    }
})

08-03 21:51