停止c#代码在每次页面加载时执行

本文关键字:加载 执行 代码 停止 | 更新日期: 2023-09-27 18:05:41

我有一个公共字符串在我的代码后面的文件,我打算从javascript调用,当我准备好了。但是,由于它并没有真正绑定到一个特定的事件,所以它只是在每次页面加载时触发。我将它设置为只触发if(IsPostBack),但我使用的控件(出于许多其他原因)是一个input type=按钮,所以页面从未真正回发,这意味着代码永远不会触发。

我怎么有这样的东西:

public string dontExecuteYet()
 {
  Do some server side stuff
  Then redirect on delay
  return string
  }

在我的代码后面,这样它不会运行,直到我告诉它?

停止c#代码在每次页面加载时执行

对我来说这就是ASP。. Net Ajax + WebMethod.

参见示例:

  1. http://msdn.microsoft.com/en-us/library/system.web.services.webmethodattribute.aspx Y1843
  2. http://www.xdevsoftware.com/blog/post/Call-WebMethod-from-Javascript-in-ASPNET.aspx
  3. ASP。. NET 4 jquery ajax webmethod call)

您可以使用Page方法和AJAX这样做。

http://www.geekzilla.co.uk/view7b75c93e c8c9 - 4576 - 972 b - 2 - c3138dfc671.htm

该代码只在javascript

调用时执行

实际上你也可以强制回发输入按钮添加onclick="javascript:__doPostBack('eventargument','eventvalue');"

如果您最终需要访问代码(假设在初始Page_Load之后),您能不能这样做:

if (!Page.IsPostBack)
{
    this.MyPublicString = "Hello World!";
}

在你的JavaScript中:

var publicString = "<%= this.MyPublicString %>";

我同意你可以在这使用AJAX,但如果你不需要这是异步的,只是使用查询字符串,像这样:

if(Request.QueryString["execute"] == "yes")
{
     dontExecuteYet();
}

,在javascript中,您只需要在按下按钮时触发此代码:

window.location = "yoursite.com?execute=yes";