簡體   English   中英

在Javascript中訪問C#函數

[英]Accessing C# function in Javascript

我認為在將D3視覺效果導入Spotfire的項目中繼續前進時,我有些不了解。

目前,我已經使用Awesomium的嵌入式瀏覽器和以下幾行在Spotfire中實現了D3可視化:

        string myString = System.IO.File.ReadAllText(@"C:\Users\leear\Desktop\SDK\SDK\Examples\Extensions\D3Visualizations\Gauge.html");
        webView.LoadHTML(myString);

Gauge.html的HTML包含運行所有必要的東西以創建可視化效果的javascript代碼。

但是,我希望能夠訪問/運行Gauge.html文件中的C#函數和變量。 我正在設想這樣的事情:

for (var value in <%=Spotfire.getCurrentColumn()%>) {gauge.redraw(value)}

我的項目目前僅針對C#代碼進行構造,以將文件中的所有HTML讀寫到Awesomium的嵌入式瀏覽器中。

我該怎么做? 如果有的話,aspx.NET在哪里適合呢?

謝謝

你不能 javascript是客戶端,而ASP.NET是服務器端。 ASP.NET基本上會生成HTML和javascript,一旦完成渲染,頁面就會由客戶端接管,而ASP.NET一無所知。 對於ASP.NET來說,因為它渲染了JS而吐出JS是完全可以的,但是JS的客戶端處理(這就是您試圖調用服務器端方法的地方)對ASP.NET一無所知。 您必須將邏輯移至客戶端,或者讓客戶端使用javascript與服務器對話。

我無法進一步建議,因為我不知道該方法的作用。

“您不能; javascript是客戶端,而ASP.NET是服務器端。ASP.NET基本上會生成HTML和javascript”。

這是絕對正確的。 客戶端和服務器是兩個不同的世界...如果需要重新使用代碼,可以有兩種選擇。 查看C#到javascript編譯器。並確保您的C#函數不依賴於與服務器或其運行時相關的任何內容。

否則,請考慮將服務器功能作為Web服務公開,該Web服務采用某種形式的輸入並將輸出作為JSON返回以供客戶端使用。

暫無
暫無

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

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