通过传递额外信息导航到页面,该页面不会在URL中结束

时间:2014-02-18 08:55:23

标签: asp.net

对于我的ASP.NET应用程序,我有一个带按钮的页面。当按下该按钮时,我需要加载一个页面并在该页面上自动执行JS方法joinGroup()。只有在按下按钮时才会发生这种情况,正常导航不会触发joinGroup()

所以在我的Controller或客户端,我需要检查一个标志,当它在那里时,我会在pageload上执行joinGroup() JS方法。

我想到了几个选择:

  • TempData:对于这种情况会很好用,但我不想要 对会话的依赖(尚)。
  • URL / QueryString参数:绝对不想这样做。当人们复制粘贴它周围的链接会产生一些非常意外的行为
  • 曲奇。将是一个选项,但我有点担心,当出现问题时,Cookie不会被删除 客户端脚本,造成了一些意想不到的破坏。
  • 我想过可能有自定义标题的东西,但我认为标题不会重定向。

还有其他建议吗?

提前致谢,

2 个答案:

答案 0 :(得分:0)

如何POST到该操作方法而不是发出GET请求?这样您就可以提交任何您喜欢的内容,并且不会在URL中显示。您将必须使用HttpPost属性修饰action方法并添加您想要的任何参数...在这种情况下布尔参数...

[HttpPost]
public ActionResult YourActionMethod(bool yourFlag)
{
    return View(flag);
}

然后,触发此操作方法的按钮需要包装在表单中...

@using (Html.BeginForm("YourActionMethod","YourController", FormMethod.Post)) {
    <input type="hidden" name="flag" value="True"/>
    <input type="submit" value="Navigate" />
}

答案 1 :(得分:0)

    void LinkButton_Click(Object sender, EventArgs e) 
  {
    ClientScript.RegisterStartupScript(this.GetType(),"CallMyFunction","joinGroup()",true);
  }