3

我正在对我的 MVC 应用程序进行修改,以禁止用户在单个会话中打开多个选项卡/窗口。为了做到这一点,我正在参考这篇文章(单击此处) 。本文是为 asp.net 编写的,而我需要为 ASP.NET MVC 实现此功能。我认为这一切在 MVC 中应该是可能的,但是,我不确定我应该怎么做才能重新编写它

if(window.name != "<%=GetWindowName()%>")

GetWindowName() 是我在控制器中创建的函数,它从 Session 对象返回“WindowName”键的值。如何在上面的 javascript 中读取它的值?

4

2 回答 2

5

您可以为此编写一个控制器方法:

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
    }
})
于 2013-04-19T07:11:24.667 回答
4

您可以为此使用ajax(jQuery):

$.get('@Url.Action("GetWindowName")', function(result){
    if(window.name != result)
    //...
});

这是剃刀语法...

于 2013-04-19T07:10:29.250 回答