1

ASP Web API などを使用して実装したかなり複雑なソリューションがあります。私のソリューションには、今すぐ言及する価値のある 3 つのプロジェクトがあります。1 つは、API メソッドのみを含む WebAPI です。他の 2 つは、アプリケーションのバックエンドとフロントエンドです。バックエンドは、ビュー用にほとんど空のシェルをロードし、API にアクセスする ajax ですべてを満たす SPA アプローチを使用します。一方、フロントエンドは、SEO の懸念から、より伝統的な手段で実装することが決定されました。つまり、ほとんどのものはサーバー側でレンダリングされます。私の質問は、単にフロントエンド コントローラから Web API メソッドを呼び出して、結果をビューに送信することは可能であり、良い方法でしょうか? 通常のコントローラーでほとんどのコードを複製しても意味がありません。すべて API で行われるからです。

これに関するサンプルはありますか?探してみましたがあまり見つかりませんでした。

4

2 に答える 2

2

C# コード (MVC コントローラーなど) から Web API サービスを呼び出す必要がある場合は、HttpClient または WebClient を使用して、HTTP 経由でサービスを呼び出すことができます。

単純にコードを再利用する必要がある場合は、クラス ライブラリ (DLL) に抽象化し、Web API および MVC プロジェクトから参照する必要があります。

于 2013-03-23T02:01:34.117 に答える
1

私はこれと同じ状況に遭遇し、少なくともしばらくの間、MVC コントローラーの Web API コントローラーを使用しました。これを行うには、Web API コントローラーの新しいオブジェクトを作成し、それらから適切なメソッドを呼び出すだけです。このメソッドは最初は正常に機能することがわかりましたが、MVC コントローラーも変更しないと Web API を変更できないことを意味する依存関係が作成されます。

私のアドバイスは、部分クラスで意味のあるできるだけ多くの機能をモデルに配置し、それでも不十分な場合は、すべての共有ビジネス ロジックを含む別のロジック層を作成することです。MVC と Web API コントローラーでロジックを重複させてはなりません。それらは、データを提供するための接着剤として機能する必要があります。

于 2013-03-20T21:42:56.547 に答える