Javascript:调用C#函数

Javascript:调用C#函数,c#,javascript,.net,connection,browser,C#,Javascript,.net,Connection,Browser,首先,我搜索了很多,所有的主题似乎都是C#:调用或调用JavaScript函数,但我想做的恰恰相反,我想在C#和JavaScript上创建一个函数,我想JavaScript函数调用C#函数并检索它的数据,这似乎是一个好问题。 问题是我对网络一无所知,也不知道它是如何工作的,但我尝试了一个示例: 创建了一个类: public interface IFoo { string Bar { get; set; } } public class Foo : IFoo { public s

首先,我搜索了很多,所有的主题似乎都是C#:调用或调用JavaScript函数,但我想做的恰恰相反,我想在C#和JavaScript上创建一个函数,我想JavaScript函数调用C#函数并检索它的数据,这似乎是一个好问题。 问题是我对网络一无所知,也不知道它是如何工作的,但我尝试了一个示例:

创建了一个类:

public interface IFoo
{
    string Bar { get; set; }
}

public class Foo : IFoo
{
    public string Bar { get; set; }
}
然后

和Javascript代码:

<script type="text/javascript" language="javascript" >

function Callme(){
alert('Js function start . keep pressing OK')
var foo = external.CreateFoo();
alert(foo.Bar);
foo.Bar = "qwer";
alert(external.Bar(foo));
}
</script>

但是javascript没有显示任何内容,如果我遗漏了什么,请指导我。

这里有一些误解

Javascript无法调用服务器函数

为此,请使用Ajax

我们可以考虑的唯一方法是在像GWT这样的框架中,但要小心:GWT用javascript编译java代码,javascript通过ajax服务器调用


内存中需要考虑的是,如果一个框架建议您直接在javascript中调用C#或java方法,那么它实际上不会执行该操作:它使用ajax调用服务器资源,然后服务器资源调用该方法。方法返回,ajax响应被发送到javascript。

这里有一些误解

Javascript无法调用服务器函数

为此,请使用Ajax

我们可以考虑的唯一方法是在像GWT这样的框架中,但要小心:GWT用javascript编译java代码,javascript通过ajax服务器调用


内存中需要考虑的是,如果一个框架建议您直接在javascript中调用C#或java方法,那么它实际上不会执行该操作:它使用ajax调用服务器资源,然后服务器资源调用该方法。方法返回,ajax响应被发送到javascript。

您应该真正了解HTTP是如何工作的,然后重新评估您的问题

您不能直接从JavaScript调用C#函数,因为您的JavaScript由浏览器在客户端执行,而C#由Web服务器在服务器上运行


如果要在服务器上调用函数,需要通过AJAX请求,使用某种Web库(如ASP.NET WebAPI或ASP.NET MVC)进行调用。

您应该真正了解HTTP是如何工作的,然后重新评估您的问题

您不能直接从JavaScript调用C#函数,因为您的JavaScript由浏览器在客户端执行,而C#由Web服务器在服务器上运行


如果要在服务器上调用函数,需要通过AJAX请求,使用某种Web库(如ASP.NET WebAPI或ASP.NET MVC)来调用函数。

进一步解释Jerome C的答案

C#是一种服务器端语言,由服务器请求执行。而JavaScript是客户端语言,这意味着它是由浏览器处理的。两者都有各自的优点,并且都常用于相同的事情,例如验证。服务器端语言是一种安全的方法,可以确保某些东西,例如在数据库之间执行命令。而客户端语言(JavaScript)更常用于改善用户体验,但使事情更具交互性

正如人们所说,两者之间有沟通的方式,但不是“直接”。这里的关键词是AJAX。使用开放源代码库(如客户端的jQuery)和服务器端的自定义处理程序(.ASHX文件),可以在客户端和服务器之间发出异步请求


用更高级的语气;你可以直接使用JavaScript和C语言对象之间的通讯,比如Simulal.Studio,这是一个很小的设置,所以我不推荐这个例子,但是将来肯定会考虑的。

< P>来解释杰罗姆C的答案。 C#是一种服务器端语言,由服务器请求执行。而JavaScript是客户端语言,这意味着它是由浏览器处理的。两者都有各自的优点,并且都常用于相同的事情,例如验证。服务器端语言是一种安全的方法,可以确保某些东西,例如在数据库之间执行命令。而客户端语言(JavaScript)更常用于改善用户体验,但使事情更具交互性

正如人们所说,两者之间有沟通的方式,但不是“直接”。这里的关键词是AJAX。使用开放源代码库(如客户端的jQuery)和服务器端的自定义处理程序(.ASHX文件),可以在客户端和服务器之间发出异步请求


用更高级的语气;你可以直接使用JavaScript与C对象之间的通信,比如Sigaalr,它是一个很小的安装程序,所以我不推荐这个例子,但是将来肯定会考虑的。

< P>你不能直接用JavaScript调用服务器函数。p> 如果需要,您可以使用
\uuuu doPostBack(“Button1”),而不是


将您的操作放在Button1的事件中。

您不能通过Javascript直接调用服务器函数

如果需要,您可以使用
\uuuu doPostBack(“Button1”),而不是

在Button1的活动中采取行动。

伙计们,等一下暂停。所有人都需要减速阅读。正如这家伙所说:

 I get Error from the webbrowser control :
这意味着他嵌入了一个webbrowser控件,打开了这个运行javascript的页面

为了澄清这一点,我认为他的意思是:

  • 这不是在线的
  • 他在C#应用程序中有一个webBrowserControl,可以打开一个页面来运行这个javascript
  • 在他的应用程序中,他希望使用javascript从应用程序中的类调用C#方法
  • 现在,我同意他有点模棱两可(提示,请用你的话更清楚些)
    Error : "external" is null or not an object
    
     I get Error from the webbrowser control :
    
    window.external.CreateFoo(); 
    
    webBrowser1.ObjectForScripting = this;