2013-05-28 44 views
0
if(httpRequest.readyState == 4 && httpRequest.status == 200) 
{ 
    <% SetText(); %> 
} 

C#方法,我需要從代碼在JavaScript調用後面的方法。方法顯然被稱爲SetText(),它是無效的。從JavaScript調用

這我試過沒有奏效。

+0

你不能這樣做,客戶端無法訪問服務器代碼,如果你多解釋一下你想實現的內容,我們可能可以提供更多幫助,也許服務方法? – Pharabus

+0

我在檢查連接是否正常,然後調用一些方法,因爲我需要頁面始終保持連接,即使連接已關閉。那麼__doPostBack呢? –

+1

@elninho什麼?這是沒有意義的。如果客戶已經下載了該頁面,它將一直處於「啓動」狀態。如果他們做了一些觸發服務器通話的事情,那麼,是的,網絡連接需要啓動,但是無論如何你不能做任何事情來僞造(除非你要預先下載你的整個網站)。 –

回答

2

這是不可能的,至少如果你沒有提出AJAX請求。否則,不可能通過客戶端訪問服務器端方法(在這種情況下通過JS)。

0

客戶端無法以您在問題中指定的方式訪問服務器方法。除非你使用AJAX之類的東西,否則你想要做的事情是不可能的。

請解釋你正在嘗試做什麼,也許有人可以解釋一種不同的方式來解決你的問題。

0

做一個Ajax調用,有你檢查連接是否正常與否。如果連接正常,請在本地實際調用(在服務器端)並返回數據。

由於您提出了一個異步請求,所以頁面數據不會顯示任何錯誤消息。即使有一些錯誤,你也會得到錯誤處理程序,並且你知道發生錯誤時該怎麼做。

客戶端代碼必須直接與服務器方法聯繫時,不應該有任何情況。如果你的設計是這樣的,你總是可以解決這個問題。

0

您可以使用AJAX完成此操作。

我目前使用HTTPHandler通過AJAX進行通話。我使用的是服務「的.asmx」與代碼看起來像這樣

<%@ WebService Language="C#" Class="MyClass" %>