2012-02-29 4 views
0

実際の例でwcfを学ぼうとしています。私はscalable wcf solution tutorialに続き、私のコンソールアプリケーションから私のサービスがうまく動作します。 OKです。しかし、私が達成したいのは、mvc view(razor)ページから私のサービストラフjsを消費していることです。私のクライアントのコンソール・アプリケーションでは、私はどのように(サービス参照を追加せずに)MVCビューページから、この作成プロキシクライアントachive practicalyするmvcビュートラフjsからwcfにアクセス

IService proxy = new ChannelFactory<IService>(Configuration.MyServiceActiveEndpoint).CreateChannel(); 
List<MyObjectDto> data = proxy.GetMyData(); 

... でプロキシにアクセスしています。ありがとうございます

答えて

0

ネットで最もクリーンで最高のWebサービス実装についてはservicestack.netをご覧ください。設定はなく、jQueryから簡単に呼び出し可能で、デフォルトでjsonを返します。簡単にNuGet Mvc 3パッケージを使い始めることができます。

+0

確かに、ありがとうございますが、今私はこの問題を解決したいと思います。誰ですか? – user1233784

+0

サービスと通信するチャネルを作成するには、コントローラ内にプロキシを作成する必要がありますか? – user1233784

0

使用しているチュートリアルでは、すでにenableWebScriptの動作にエンドポイントが登録されています。http://server/virtualdirectory/X.svc/json urlにアクセスすると自動的にjsプロキシが生成されます。そのjsファイルをMVCビューに含めます。あなたはUrl.Contentを使用することができますMVCのWebアプリケーションでWCFサービスホストしている場合

<script src="@Url.Content("~/X.svc/json")" type="text/javascript"></script> 

をそれからちょうどJSからサービスを呼び出す - 例として、このポストからJavaScriptを使用:http://dotnetslackers.com/articles/ajax/JSON-EnabledWCFServicesInASPNET35.aspx

+0

これは、jsからWCFサービスを消費する方法に対する答えです。 MVC Webアプリケーションからこれが正しいことなのかどうかは疑問ではありません。[ShaneCourtrilleの答え](http://stackoverflow.com/a/9508016/829181)ではそのことを説明しています。 – armasanea

1

あなたはこれをしません。あなたは本当にしません。これにより、モデルビューコントローラ(MVC)の全体が完全に破壊されます。コントローラは、WCFサービスにアクセスし、ビューにデータを返すものでなければなりません。

関連する問題