在Javascript中访问C#函数
在我继续将D3视频导入Spotfire的项目时,我认为有一些东西我不理解 目前,我已使用Awesomium的嵌入式浏览器在Spotfire中实现了D3可视化,其中包括:在Javascript中访问C#函数,c#,javascript,asp.net,d3.js,awesomium,C#,Javascript,Asp.net,D3.js,Awesomium,在我继续将D3视频导入Spotfire的项目时,我认为有一些东西我不理解 目前,我已使用Awesomium的嵌入式浏览器在Spotfire中实现了D3可视化,其中包括: string myString = System.IO.File.ReadAllText(@"C:\Users\leear\Desktop\SDK\SDK\Examples\Extensions\D3Visualizations\Gauge.html"); webView.LoadHTML(myS
string myString = System.IO.File.ReadAllText(@"C:\Users\leear\Desktop\SDK\SDK\Examples\Extensions\D3Visualizations\Gauge.html");
webView.LoadHTML(myString);
HTML的HTML包含javascript代码,该代码运行创建可视化所需的所有内容
但是,我希望能够访问/运行Gauge.html文件中的C#函数和变量。我正在设想这样的事情:
for (var value in <%=Spotfire.getCurrentColumn()%>) {gauge.redraw(value)}
for(变量值在){gauge.redraw(值)}
我的项目目前的结构仅仅是为了让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#to javascript编译器..并确保您的C#函数不依赖于任何与服务器或其运行时相关的内容
另外,考虑将服务器功能暴露为Web服务,该Web服务输入某种形式并将输出作为JSON返回到客户端使用。ASP.NET是一种服务器端技术,它将HTML页面提供给用户浏览器,是的,它可以提供帮助,但如果您开发一个有意义的浏览器应用程序。我可能会在每次按下“run”(运行)按钮时用C#编辑javascript代码,然后从头重新加载webview的HTML,这样D3总是运行预定义的脚本,尽管Spotfire中每次发生更改时都会更改。是的,或者客户端上有管理HTML的优秀工具,因此,您不会经常往返于服务器。