Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
停止每次加载页面时执行C#代码_C#_Code Behind_Delayed Execution - Fatal编程技术网

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

停止每次加载页面时执行C#代码,c#,code-behind,delayed-execution,C#,Code Behind,Delayed Execution,我的代码隐藏文件中有一个公共字符串,当我准备好使用它时,我打算从javascript调用它。但是,由于它实际上并不与特定事件相关联,因此它只是在每次加载页面时触发。我会将其设置为仅在(IsPostBack)时触发,但我使用的控件(出于许多其他原因)是一个input type=按钮,因此页面永远不会真正进行回发,这意味着代码永远不会触发 我怎么能有这样的东西: public string dontExecuteYet() { Do some server side stuff Then

我的代码隐藏文件中有一个公共字符串,当我准备好使用它时,我打算从javascript调用它。但是,由于它实际上并不与特定事件相关联,因此它只是在每次加载页面时触发。我会将其设置为仅在(IsPostBack)时触发,但我使用的控件(出于许多其他原因)是一个input type=按钮,因此页面永远不会真正进行回发,这意味着代码永远不会触发

我怎么能有这样的东西:

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

在我的代码隐藏中,直到我告诉它,它才运行?

您可以使用页面方法和AJAX这样做

该代码仅在使用javascript调用时执行


实际上,您还可以通过添加onclick=“javascript:uu doPostBack('eventargument','eventvalue');(如果您可以控制它)强制回发输入按钮。

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

参见示例:

  • )

  • 如果您最终需要访问代码(假设在初始页面加载之后),您就不能这样做:

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

    var publicString = "<%= this.MyPublicString %>";
    
    var publicString=”“;
    
    我同意在这方面可以使用AJAX,但如果不需要异步,只需使用查询字符串,如下所示:

    if(Request.QueryString["execute"] == "yes")
    {
         dontExecuteYet();
    }
    
    在javascript中,按下按钮时只需触发以下代码:

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

    如果按钮没有回发,您将如何告诉服务器何时需要运行代码?问题是页面从未按设计回发。单击按钮时,我正在使用一个web服务,该服务返回一个项目列表,然后保存到本地存储。每当我允许页面也在单击按钮时发回时,web服务总是返回null。我一停止页面发回,一切都正常了。