2012-07-05 12 views
6

私には新しかった多くの概念を理解しようとしていますが、MVCコントローラから強く型付けされたモデルを作成して渡すための最良の方法が必要ですWeb APIを使用したRazorビューMVC ControllerからWeb APIを呼び出してモデルを作成して渡します

多くの例に見られるように、通常、あるリポジトリからモデルを作成し、それをビューに渡すか(強く型付けされたものかどうか)、モデルにアクセスしてhtmlを構築するためのRazor構文を使用しますJavaScriptを使用する必要があります。

私にとって複雑なことは、前の段落で説明したのと同じように、使いたいモデルを作成するためにWeb APIを使用したいときです。

コントローラ内からWeb APIサービスを呼び出すために新しいHTTPClientを呼び出す必要がありますか? 応答を逆シリアル化してフォーマットする必要がありますか?等...

私は常にビュー内のスクリプトからの呼び出しと操作を参照してください...

誰かが正しい方向に私を指すもらえますか?

ありがとうございました。

+0

あなたの設定がわかりません。ビューにデータを返すために 'ApiController'sを使用していますか、標準のMVCコントローラの中から別のWebAPIコントローラを呼び出していますか? – James

+0

こんにちはジェームズ、私は標準のMVCコントローラの内側からWebAPIコントローラを呼び出しています。現時点では、私は実践しているので、同じMVCアプリのapicontrollerかもしれませんが、結局私は他のアプリから呼び出すスタンドアロンのWebAPIサービスを構築する必要があります。 – jbrabant

答えて

8

WebAPIが別のエンドポイント、つまり既存サイトの一部でない場合は、コントローラ内からHttpWebRequestを送信し、レスポンスからデータをシリアル化してビューに渡す必要があります。

また、AJAXを介してビュー内からAPIを直接呼び出すこともできますが、コントローラでデータを処理する必要があるかどうかはわかりません。

+0

あなたの答えはJamesに感謝します。唯一の消費者が私のMVCアプリなら、apicontrollersの必要はないと言うのは正しいですか? – jbrabant

+8

それを見る方法は - ApiControllersは* data *を返します。標準のMVCコントローラはクライアントにcomsumptionのためのXML/Jsonを返す*ビュー*をブラウザに提供します。標準的なコントローラもデータを返すことができますが、この目的のためには、* view *コントローラであると考えてください。だからすべてを考慮に入れ、あなたが必要なコントローラのタイプを自分自身に尋ねなさい... – James

関連する問題