【发布时间】:2013-01-05 13:23:37
【问题描述】:
我想嵌入一个由服务器创建并发送到客户端以显示在网页中并保持更新的 ActiveX 包装器 (System.Windows.Forms.AxHost) 那可能吗 ? 我认为可以使用对象来完成,但不确定如何使用 C# ASP .Net 来完成
【问题讨论】:
标签: c# asp.net html client-server activex
我想嵌入一个由服务器创建并发送到客户端以显示在网页中并保持更新的 ActiveX 包装器 (System.Windows.Forms.AxHost) 那可能吗 ? 我认为可以使用对象来完成,但不确定如何使用 C# ASP .Net 来完成
【问题讨论】:
标签: c# asp.net html client-server activex
阅读您的问题,您可能会更具体地提出以下问题:
不,这是不可能的。当您从服务器传递<object classid="sid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"/> 时,您并没有传递该对象的实例。您正在向客户端发送指令以实例化和呈现该对象。归根结底,http 通信只是文本,而不是内存块和可执行代码(这就是实例化对象)。服务器吐出的任何东西都必须在客户端上实例化。浏览器对 html 标记这样做,如果它们可能会这样做对象
ActiveX 控件本质上是客户端(最好避免使用更安全和广泛支持的技术来创建强大的 Web UI,例如 ajax)
【讨论】:
我相信这篇文章“在 Web 表单中托管 Windows 控件”可能会对您有所帮助。
http://www.4guysfromrolla.com/articles/052604-1.aspx
不过,我想引用这句话,并牢记这一点:'在 ASP.NET 中托管 Windows 控件有几个值得讨论的限制。首先,它要求客户端计算机至少安装了 .NET 可再发行组件并使用 Internet Explorer 5.01 或更高版本进行浏览。 [...] 其次,ASP.NET 不能托管 Windows 窗体。您需要将这些部分抽象为 Windows 控件。最后,由于 Windows 控件不是可以在服务器上运行的 Web 控件,因此在回发期间无法轻松设置或读取属性。'
【讨论】: