我的页面上有一个提交按钮(服务器端按钮)。
这是我的点击事件代码:
protected void SubmitButton_Click(object sender, EventArgs e)
{
db.SaveSomething();
Page.ClientScript.RegisterStartupScript("someScriptWhichReliesOnServerData");
Response.Redirect("SomeOtherPage.aspx");
}
现在,问题是,我使用 注册了 JavaScript Page.ClientScript.RegisterStartupScript,但这将不起作用,因为页面没有在回发时重新呈现(这是脚本将被执行的地方),而是Response.Redirect发生了。
我能想到的唯一解决方案是让页面重定向到“意识到”我正在尝试执行一些 JavaScript,无论是 QueryString、HttpContext.Current.Items 还是(gulp)Session。
- QueryString - 不是一个选项,因为它是我试图执行的 JavaScript。
- HttpContext.Current.Items - 也不是一个选项,因为我正在执行 Response.Redirect(它会丢失请求级数据,而且我也不能使用 Server.Transfer,因为这与 URL 重写不匹配)。
- 会话 - 当然,但并不理想。
还有其他想法/建议吗?
编辑澄清:
即时执行的 JavaScript 是对 Facebook 客户端 API 的调用,以发布到用户的墙上。它必须在客户端完成。我将诸如“标题”、“消息”、“操作链接”等内容传递给脚本。基本上是一堆 JSON。但这里的关键是这些数据是在回发时创建的,所以我不能只在客户端点击时执行这个功能。
所以我试图完成的是点击提交按钮,执行一些javascript并进行重定向(不必按这个顺序,只需要两者都发生)。