【问题标题】:How can I do a Postback via Javascript [duplicate]如何通过 Javascript 进行回发 [重复]
【发布时间】:2011-12-17 08:02:38
【问题描述】:

可能重复:
ASP.NET postback with JavaScript

我有一个没有表单的页面。但我需要每次请求此页面时,回发都由 javascript 完成。

如何通过 Javascript 进行回发?

【问题讨论】:

  • 使用表单有什么问题?使用 AJAX UpdatePanel,这样您的页面就不会被刷新。
  • “每次请求页面时,回发都由 Javascript 完成”我不确定这是什么意思。每次有人单击超链接或键入页面的 URL 时,您希望 Javascript 处理页面的加载吗?如果页面上没有表单,那么为什么页面会“回发”到任何东西?抱歉,有点困惑。
  • 在这个页面中,我只是展示了一些来自我的数据库的信息。但这是不是,当点击超链接时,我需要回发。

标签: c# javascript jquery asp.net .net


【解决方案1】:

您可以使用jQuery.post() 方法。

http://api.jquery.com/jQuery.post/

示例:

$.post("test.aspx", { name: "John", time: "2pm" } );

【讨论】:

  • 太棒了!现在每次我发出请求时都会调用 Page_Load!谢谢!
  • 有趣。这将被视为实际回发吗?换句话说,当这个 .post() 操作执行时,如果我的代码隐藏中有断点,IsPostBack == true 吗?
  • @mikemanne:是的,这将执行 HTTP POST。
  • @RedFilter:刚刚做了一个快速测试。虽然这确实发送了 POST 模式的 HttpRequest,但 asp.net 似乎并未将其识别为回发:页面的 IsPostBack 属性返回 false。有什么我想念的吗?
  • 我实现了测试,IsPostBack 属性也返回 false。
【解决方案2】:

我的理解是你不能在没有表单标签的情况下进行回发 - 句点。表单是 ViewState 工作方式的重要组成部分。

您可以使用 javascript 将浏览器驱动到不同的 URL,或者重新加载当前 URL,如果这是您要查找的内容。但是,这不是 ASP.NET 回发。

【讨论】:

  • 我需要这个,因为我的页面只是在第一个请求中进入我的 Page_Load 方法。如果我再次请求,该页面不会进入我的 Page_load,然后我将向我的用户显示旧值。所以,我需要做一个回发
  • 请不要对我投反对票,因为 ASP.NET 回发需要一个表单标签。那不是我的错。如果我对该要求的理解有误,请解释 - 我很乐意学习。
  • Page_Load 将在每个页面请求上调用,无论是“原始”请求还是回发。
  • 我的 Page_Load 在我的页面的第一个请求中被调用的原因是什么?
  • Page_Load 在该页面的每个请求上都会被调用。如果您的 Page_Load 中有 if(IsPostBack) 块,则该块中的代码只会在回发的情况下被调用。但除非有 HttpModule 干扰,或者您的页面在生命周期的早期抛出异常 (msdn.microsoft.com/en-us/library/ms178472.aspx),否则将调用 Page_Load。
猜你喜欢
  • 2016-12-23
  • 2012-09-06
  • 1970-01-01
  • 2016-05-18
  • 2016-01-25
  • 2012-10-09
  • 1970-01-01
  • 2010-09-23
  • 2013-08-04
相关资源
最近更新 更多