2011-06-30 76 views
0

請看這段代碼,找出它不起作用的原因。我沒有在網頁中收到警報。但是,它下面的console.writeLine正在執行。Javascript不能從ASP.NET執行

private void PublishLoop() 
    { 
     while (Running) 
     {   
      Thread.Sleep(5000); 
      dtMessages = (String)(Cache.Get(key)); 
      if (dtMessages == null) 
      { 
       //publish here 
       dtMessages = LoadMessages(); 
       System.Diagnostics.Debugger.Log(0,null,dtMessages); 
       Page.ClientScript.RegisterStartupScript(this.GetType(),"ClientScript", "alert('hi');",true); 
       Console.WriteLine(dtMessages); 
      } 
     } 

    } 

回答

0

編輯:實際上,你可以只註冊響應每一個獨特的關鍵。你在while循環中運行這段代碼,所以它會一直註冊相同的密鑰。每次調用此函數時,都需要爲其提供一個獨特的密鑰參數。在你的情況下,也許你可以在你的循環中有一個計數器並將其附加到你的密鑰字符串

int i = 0; 
while (Running) 
     {   
      Thread.Sleep(5000); 
      dtMessages = (String)(Cache.Get(key)); 
      if (dtMessages == null) 
      { 
       //publish here 
       dtMessages = LoadMessages(); 
       System.Diagnostics.Debugger.Log(0,null,dtMessages); 
       Page.ClientScript.RegisterStartupScript(this.GetType(),"ClientScript" + i.ToString(), "alert('hi');",true); 
       Console.WriteLine(dtMessages); 
       i++; 
      } 
     } 
+0

沒有。它仍然不起作用。我在代碼背後有這個文件,我在瀏覽器中啓動了aspx文件。我可以在Visual Studio中看到console.writeline輸出。但是,我沒有得到我的網頁瀏覽器的警報 – CuriousCoder

+0

@hari當然,看看我的編輯,看看是否有幫助 - –

+0

順便說一句,然而很多時候你的alert()腳本得到註冊是多少alert()味精的你去接收,你知道嗎?如果你只希望發生這種情況,你只能稱它爲 –