停止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
}
在我的代码后面,这样它不会运行,直到我告诉它?
对我来说这就是ASP。. Net Ajax + WebMethod.
参见示例:
- http://msdn.microsoft.com/en-us/library/system.web.services.webmethodattribute.aspx Y1843
- http://www.xdevsoftware.com/blog/post/Call-WebMethod-from-Javascript-in-ASPNET.aspx
- 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";