C# 通知主机更改
我有一个ASP.NET应用程序和一个托管WebBrowser的C应用程序。ASP.NET应用程序通过C应用程序运行 我需要在点击按钮时通知C应用程序。最好的方法可能是通过Javascript。这看起来并不复杂,因为我可以公开javascript window.external的函数,但我的C应用程序看到的唯一URL是/Default.aspx。所有javascript函数window.external.myfunc。。必须来自此页面 有什么想法吗?我一片空白。我也有点不确定如何从代码背后调用javascript函数。ScriptManager.RegisterClientScriptBlock似乎被大量使用,但能否在一个页面上多次调用它 谢谢 顺便说一下,对于C客户机,我使用WebBrowser.ObjectForScript来编写自定义对象,该对象将从Javscript获取这些window.external函数调用。这是可行的。带有ObjectForScript和window.external的部件可以正常工作 为了从ASP.NET代码中调用js函数,应该使用js中的ajax调用。为此,有两种方法: 1-创建一个web服务并不断调用它以检查发生的任何事情,例如轮询。这是最简单的方法,可以轻松实现,例如使用jQuery: 然后从回调调用window.external.func到该ajax调用,当然,如果它返回了预期的值。请注意,使用此方法,您将始终有一个延迟,因为客户端应该轮询服务器 2-与服务器建立连接并保持打开状态,然后在服务器准备就绪时从服务器发送数据。对于这个问题,您可以使用类似于signar的东西。这将解决延迟问题,但将保持开放连接,这反过来会带来其他问题 实际上,决定这两种方法之间的主要因素是您是否可以接受延迟。如果平均等待15秒不是问题,请使用轮询时间为30秒的第一种方法。如果您希望它是实时的,请使用第二种方法,但要注意其自身的问题,如长时间运行的连接、signer中缺少会话状态等C# 通知主机更改,c#,javascript,asp.net,C#,Javascript,Asp.net,我有一个ASP.NET应用程序和一个托管WebBrowser的C应用程序。ASP.NET应用程序通过C应用程序运行 我需要在点击按钮时通知C应用程序。最好的方法可能是通过Javascript。这看起来并不复杂,因为我可以公开javascript window.external的函数,但我的C应用程序看到的唯一URL是/Default.aspx。所有javascript函数window.external.myfunc。。必须来自此页面 有什么想法吗?我一片空白。我也有点不确定如何从代码背后调用ja
我只是想让你看看选择。如果有任何不清楚的地方,请告诉我。window.external和WebBrowser.ObjectForScripting也是我使用的方式。是的,我的问题是如何从后面的代码调用window.external。即使来自其他内部页面,也必须来自WebBrowser URL中的页面,以查看哪个页面是默认的.aspx。因此,如果我没有弄错的话,从myOtherPage.aspx调用window.external将无法工作。谢谢。我已经测试了一点,我可以看到窗口。外部工作。目前我面临的问题是将Javascript中的值返回给代码,因为这会发送一个C应用程序需要批准或不批准的参数。有什么建议吗?好的。让我们回顾一下整个场景。您希望后台代码在加载页面后将值发送到页面,然后调用window.external对象上的一些方法,从用户处获取一些值,最后将获取的值返回到ASP.NET页面。对的
$.ajax(...);