[英]Call c# function of global class from javascript
我有一個返回一些字符串的全局函數。 我需要從頁面之一中的JavaScript訪問該函數,並將返回值設置為JavaScript變量。
例:-
var jsvariable = <%GlobalClass.MethodReturningString();%>;
怎么做?
您不能像這樣調用C#函數。 您需要創建一個Web服務或Web方法才能調用此函數。 請查看此鏈接,它將為您提供幫助。 http://www.aspsnippets.com/Articles/Calling-ASPNet-WebMethod-using-jQuery-AJAX.aspx
執行以下步驟:
context.Response.Headers.Clear(); context.Response.Write(GlobalClass.MethodReturningString();); context.Response.Flush();
context.Response.Headers.Clear(); context.Response.Write(GlobalClass.MethodReturningString();); context.Response.Flush();
在您的JavaScript中,使用jQuery執行ajax調用:
$.ajax({ url:'someUrl/Handler.ashx', type:'GET', success : function(data){ var someJavascriptVariable = data; } });
注意:這是一個快速而骯臟的編寫,因此我不保證該代碼一定能正常工作,但這是您入門的重點。
我可以厚一點嗎,但是您可以使用Ajax訪問ur c#函數
例如
$.post('url', {parameter : parameter }, function (result) {
// here the result is your function return value or output
},"json");
網址格式:“ / pageurl /方法名”
首先,為澄清起見,您似乎並不是在試圖從Javascript實際調用C#方法,而是在頁面內呈現C#方法的返回值,以便可以將其用作Javascript變量值。客戶端。
為此,您需要更新語法,例如:
var jsvariable = '<%= GlobalClass.MethodReturningString() %>';
請注意,如果您的類與從文件后面的代碼繼承的頁面不在同一個命名空間中,則您需要如下導入其命名空間:
<%@ Import Namespace="GlobalClassNamaspace" %>
命名空間導入也可以使用此處所述的web.config文件在全球范圍內完成(並且將自動在網站的所有頁面上提供)。
如果您實際上需要從Javascript調用C#方法,而您想通過客戶端代碼動態使用其C#方法,則可以通過Ajax實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.