1

サーバーによって作成され、クライアントに送信されて Web ページに表示され、更新された ActiveX ラッパー (System.Windows.Forms.AxHost) を埋め込みたい 可能ですか? オブジェクトを使用して実行できると思いますが、C# ASP .Net を使用して正確に実行する方法がわかりません

4

2 に答える 2

2

あなたの質問を読んで、あなたはこれをより具体的に尋ねているかもしれません:

  • クライアントでレンダリングされたサーバーでインスタンス化され、クライアントでインスタンス化されたかのように最新のインタラクティブな状態に保たれるactivexコントロールのインスタンスが必要です。

いいえ、これは不可能です。サーバーから渡すとき<object classid="sid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"/>、そのオブジェクトのインスタンスを渡しているわけではありません。クライアントにディレクティブを送信して、そのオブジェクトをインスタンス化してレンダリングします。結局のところ、http 通信は単なるテキストであり、メモリや実行可能コードのブロックではありません (これがインスタンス化されたオブジェクトです)。サーバーによって吐き出されたものはすべて、クライアントでインスタンス化する必要があります。ブラウザーは html タグに対してそうします。

  1. オブジェクトをサポートします (java オブジェクトには JVM が必要で、activex オブジェクトには MS インフラストラクチャが必要です)
  2. オブジェクトがインストール済みまたはインストール可能である (コードがクライアント上で実行される必要があるため、コードがそこに到達する必要がある)
  3. ローカルのセキュリティ設定では、この種のことが許可されています (これは、多くの場合、ますます一般的にはそうではありません)。

ActiveX コントロールは、本質的にクライアント側にあります ( ajaxのような堅牢な Web UI を作成するための、より安全で広くサポートされているテクノロジについては避けるのが最善です) 。

于 2013-01-05T15:48:12.970 に答える
1

この記事は、「Windows コントロールを Web フォームでホストする」というあなたの役に立つと信じています。

http://www.4guysfromrolla.com/articles/052604-1.aspx

ただし、コメントを引用したいと思いますが、次の点を念頭に置いてください。まず、クライアント マシンに少なくとも .NET 再頒布可能ファイルがインストールされていることと、Internet Explorer 5.01 以降でブラウズしていることが必要です。[...] 次に、ASP.NET は Windows フォームをホストできません。これらの部分を Windows コントロールに抽象化する必要があります。最後に、Windows コントロールはサーバーで実行できる Web コントロールではないため、ポストバック中にプロパティを簡単に設定したり読み取ったりすることはできません。

于 2013-01-05T13:39:25.353 に答える