0

MVC4 アプリケーション コントローラーから Silverlight メソッドを呼び出す必要があります。

object タグを使用して Silverlight を読み込みます。

<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="50%" height="100%" style="border:1px solid #cdcdcd">
          <param name="source" value="ClientBin/HelloWorld.xap"/>
          <param name="onError" value="onSilverlightError" />
          <param name="background" value="white" />
          <param name="minRuntimeVersion" value="5.0.61118.0" />
          <param name="autoUpgrade" value="true" />
          <param name="onLoad" value="pluginLoaded" />
          <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=5.0.61118.0" style="text-decoration:none">
              <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
          </a>
        </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>

Silverlight メソッドを呼び出すには、JS メソッドを使用しています。

しかし、MVC4-controllder から Silverlight メソッドを呼び出したいです。

出来ますか?もしそうなら、どうすればいいですか?

私にアドバイスしてください。

//Silverlight method
[ScriptableMember]
public void ShowAlertPopup(string message)
{
    MessageBox.Show(message, "Message From JavaScript", MessageBoxButton.OK);
}
4

1 に答える 1

2

それは不可能です。Silverlight はクライアントと JavaScript で実行されますが、MVC はサーバーで実行されます。これらは異なるマシンです。

メソッドを再利用する必要がある場合は、次のいずれかを使用できます。

  1. ソース コードの共有(セクション「既存の項目をリンクとして追加する」)
  2. ポータブル ライブラリ プロジェクト
  3. RIA サービスの共有コード機能

いくつかのメソッドを再利用することだけが必要な場合は、それらを別のファイルに移動してから、そのファイルを 2 つのプロジェクト (MVC プロジェクトと Silverlight プロジェクト) にリンクすることをお勧めします。

重要な注意事項の 1 つは、Silverlight と .NET の両方に存在する機能を使用するコードのみを再利用できるということです。MVC アプリケーションから Silverlight 固有の機能 (ブラウザーの対話など) を使用することはできません。


サーバーからクライアントにメッセージを送信する必要がある場合は、次のいずれかを実装する必要があります。

  1. ポーリング
  2. ロングポーリング
  3. サーバー送信イベント
  4. WebSocket

SignalRは、タスクを簡素化するための優れたライブラリです。

于 2013-05-14T17:29:37.450 に答える