从HTML页面上单击的按钮调用C#函数

从HTML页面上单击的按钮调用C#函数,c#,html,C#,Html,我的应用程序(C#)由一个嵌入式web浏览器组成,该浏览器将从服务器加载HTML页面。HTML页面将为这个特定的应用程序从头开始创建。我打算采用以下程序: 用户打开应用程序 嵌入在应用程序中的web浏览器将加载HTML页面 用户将单击HTML页面上的按钮 此操作会触发C#函数(在客户端) 函数做一些工作 将数据列表发送回网页 网页将检索并显示此数据 用户的浏览器将刷新以显示新页面 现在我的问题是: 当在服务器页面上单击按钮时,如何触发客户端的C#函数 传输数据的最佳方式是什么(可能是对象)

我的应用程序(C#)由一个嵌入式web浏览器组成,该浏览器将从服务器加载HTML页面。HTML页面将为这个特定的应用程序从头开始创建。我打算采用以下程序:

  • 用户打开应用程序
  • 嵌入在应用程序中的web浏览器将加载HTML页面
  • 用户将单击HTML页面上的按钮
  • 此操作会触发C#函数(在客户端)
  • 函数做一些工作
  • 将数据列表发送回网页
  • 网页将检索并显示此数据
  • 用户的浏览器将刷新以显示新页面
现在我的问题是:

  • 当在服务器页面上单击按钮时,如何触发客户端的C#函数

  • 传输数据的最佳方式是什么(可能是对象)

  • HTML页面上的函数如何在继续执行该函数之前等待接收数据


使用WebBrowser控件,可以使用该属性。这将允许JavaScript使用window.external.C#MethodName调用C#代码


序列化可能需要解决一些问题,您可能需要使用webbrowser.Document.InvokeScript将数据触发回JavaScript(我个人没有使用window.external调用的结果,所以不能这么说)。

使用webbrowser控件,您可以使用该属性。这将允许JavaScript使用window.external.C#MethodName调用C#代码


您可能需要处理序列化过程中的一些怪癖,您可能需要使用webbrowser.Document.InvokeScript将数据触发回JavaScript(我个人没有使用window.external调用的结果,因此无法说明这一点).

为什么不把整个东西变成一个网络应用程序,而不是一个有网络浏览器的应用程序?让整个事情变得更简单…请看我的答案,但我同意@RyanBennett的观点。对我来说,这听起来像是一个AJAX web应用程序。或者,如果客户端的C#非常重要,它也可以是一个WPF应用程序。无论哪种方式,在C#应用程序中运行浏览器并期望它从html内容中执行其他C#函数就像坐在汽车驾驶座上的自行车上,试图让它转动第二辆自行车的踏板以使汽车移动。我知道可能有更简单的方法,但是我必须为一个特定的项目使用这种方法,为什么不把整个项目变成一个web应用程序,而不是一个有web浏览器的应用程序呢?让整个事情变得更简单…请看我的答案,但我同意@RyanBennett的观点。对我来说,这听起来像是一个AJAX web应用程序。或者,如果客户端的C#非常重要,它也可以是一个WPF应用程序。无论哪种方式,在C#应用程序中运行浏览器并期望它从html内容中执行其他C#函数就像坐在汽车驾驶座上的自行车上,试图让它转动第二辆自行车的踏板以使汽车移动。我知道可能有更简单的方法,但是我必须为一个特定的项目使用这种方法