繁体   English   中英

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

[英]Stop C# Code From Executing Every Time Page Loads

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

我怎么会有类似的东西:

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

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

您可以像这样使用 Page 方法和 AJAX 来执行此操作。

http://www.geekzilla.co.uk/View7B75C93E-C8C9-4576-972B-2C3138DFC671.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";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM