簡體   English   中英

如何從Javascript在ASP.Net頁面上調用靜態方法?

[英]How do I call a static method on my ASP.Net page, from Javascript?

抱歉,這是一個簡單的答案,但我似乎找不到(在SO或Google上)。

我有一個aspx頁面,帶有GridView,每個記錄都有一個按鈕。

我需要做的是在每個記錄中執行一些Javascript,以從基礎頁面類中請求一些數據。 類上的方法是靜態的,因此我對實例不感興趣。

另外,我想不執行回發就調用此方法。 可以這樣做,如果可以,我該怎么做?

注意

我知道每個人總是想要代碼,但從本質上講,我正在尋找可以放入OnClientClick事件中的代碼段。 像這樣:

<asp:Button id="myButton" 
    runat="server" 
    ... 
    OnClientClick='PageClass.UserMustConfirm()?confirm("Are you sure you want to continue?") : true ' />

就像其他評論中已經說過的那樣,您將需要使用Ajax或PageMethods ...但是我想清除一些關於它最初是如何工作的誤解。

客戶端中運行的代碼與服務器中運行的代碼有明顯的區別-這無法直接從客戶端代碼中調用服務器代碼-怎么可能呢? 相反,您需要向該代碼“存在”的服務器發出請求,獲取響應,並在客戶端中對其進行有意義的操作-這就是PageMethods所做的:它打開一個作為WebMethod的方法並讓客戶端代碼可以無縫地執行某些操作。

但是你不應該那樣做。

與其依賴基本的古老框架(WebForms),不如考慮使用jQuery的$.ajax(...)Promise對象以更明確,與框架無關的方式為您完成此任務。

簡短的答案:您不能直接從運行的JavaScript(至少在瀏覽器中)調用C#。

長答案:您可以使用Ajax發送服務器參數來調用C#代碼,並對返回的結果進行處理。

希望有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM