如何在MVC中从javascript调用服务器端函数?

3
我正在修改我的MVC应用程序,以防止用户在单个会话中打开多个选项卡/窗口。 我参考了这篇文章(点击这里)该文章来实现这一功能。但是,这篇文章是针对ASP.NET编写的,而我需要为ASP.NET MVC实现此功能。 我认为在MVC中应该可以实现这一点,但是我不知道该如何重写它。
if(window.name != "<%=GetWindowName()%>")

GetWindowName() 是我在控制器中创建的一个函数,它从 Session 对象中返回 "WindowName" 键的值。如何在上述 JavaScript 中读取其值?


使用Ajax!我的学徒;-) - hackp0int
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
    }
})

4
您可以使用ajax来实现(使用jQuery):
$.get('@Url.Action("GetWindowName")', function(result){
    if(window.name != result)
    //...
});

这是 Razor 语法...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接