2011-08-12 84 views
0

我有一个公共字符串在我的代码后面的文件,我打算从JavaScript调用时,我已经准备好了。但是,由于它并不是真的与特定事件相关联,所以每次页面加载时都会触发。我将它设置为仅当(IsPostBack)触发,但我使用的控件(出于许多其他原因)是一个输入类型=按钮,因此页面从不真正执行回发,这意味着代码永远不会触发。停止C#代码执行每次页面加载

我怎么有这样的事情:在我的代码背后这样

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

,它不运行,直到我告诉它?

+1

如果按钮不回传,你怎么告诉SER什么时候代码需要运行? – David

+0

from javascript。 – jmease

回答

0

如果您需要访问代码,最终(最初的Page_Load后假设),不能你只是这样做:

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

而且在你的JavaScript:

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

问题是网页从不回传设计。在按钮上单击我正在使用一个Web服务,该服务返回一个项目列表,然后将其保存到本地存储。无论何时我允许页面也回发按钮单击,Web服务始终返回null。只要我停止发布回来的页面,一切正常。 – jmease

0

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

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

,并在JavaScript中,你只需要为这个代码,当按钮被按下开火:

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