我正在修改我的MVC应用程序,以禁止用户在一个会话中打开多个选项卡/窗口。 我正在参考this article (click here)来做到这一点。 本文是为asp.net编写的,而我需要为ASP.NET MVC实现此功能。 我认为这一切都应该可以在MVC中实现,但是,我不知道该怎么做才能重写这个
if(window.name != "<%=GetWindowName()%>")
GetWindowName()是我在Controller中创建的函数,它从Session对象返回值“WindowName”键。如何在上面的javascript中读取它的值?
答案 0 :(得分:4)
你可以使用ajax(jQuery):
$.get('@Url.Action("GetWindowName")', function(result){
if(window.name != result)
//...
});
这是剃刀语法......
答案 1 :(得分:4)
您可以为此编写控制器方法:
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
}
})