[英]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.