3

通常のMVCコントローラーとWebAPIコントローラーを含むWebMVCアプリがあります。

同じプロジェクトで通常のMVCコントローラーアクションからWebAPIコントローラーを呼び出す適切な方法は何ですか?

4

3 に答える 3

3

ASP.Net Web API は、サーバー側のロジックからではなく、HTTP 経由で呼び出されることを意図しています。おそらく、レンダリングされたプレゼンテーションは、クライアント側の要求 (ajax など) を介して Web API を呼び出すことができます。

MVC コントローラーのアクションが、Web API アクションでのみ使用可能なコードを実行する必要がある場合は、そのコードを Web API から切り離し、コードのプラットフォームに依存しない領域に移動することを検討する必要があります。 (サービス層?)。

于 2013-01-17T19:10:48.433 に答える
0

MVCコントローラーからWEBAPIサービスを呼び出すことはアンチパターンですか?を参照してください。

簡単に言うと、APIにアクセスするにはhttpclientを使用します。

于 2013-03-08T19:13:31.580 に答える
0

JSON (または類似のもの) をクライアントに送り返すだけの方法が必要な場合は、MVC コントローラーからビュー以外のものを返すことを選択できます。その後、すべて MVC Web アプリ内で処理されるため、Web API を使用する必要はありません。

public JsonResult DetailsJson(int id)
{
    Car car = carRepository.Find(id);
    return Json(car, JsonRequestBehavior.AllowGet);
}

この例は、次を使用して呼び出されます

/Cars/DetailsJson/3

テスト上の理由から、(JsonRequestBehavior.AllowGet を追加することにより) サンプルで GET が許可されていることに注意してください。POST 要求のみをサポートする場合は、削除される可能性があります。

于 2013-01-18T08:11:59.360 に答える