簡體   English   中英

從JavaScript調用全局類的C#函數

[英]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

執行以下步驟:

  1. 右鍵單擊您的網站或Web應用程序,然后添加一個WebHandler。 Webhandler的擴展名是“ .ashx”。 假設您將處理程序命名為“ Handler.ashx”
  2. 打開Handler.ashx文件,並在ProcessRequest方法中編寫以下內容: context.Response.Headers.Clear(); context.Response.Write(GlobalClass.MethodReturningString();); context.Response.Flush(); context.Response.Headers.Clear(); context.Response.Write(GlobalClass.MethodReturningString();); context.Response.Flush();
  3. 在您的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.

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