11

web api controllerを既存のMVC4アプリケーションに正常に追加しました。

新しい Web API サンプル で利用できるように、API ドキュメント機能を使用したいと考えています(ex. http://sample.hostname.com/help)。これらはApiExplorerクラスを使用していると思います。HelpPage領域をプロジェクトにコピーしようとしましたが、エラーが発生します

「タイプ文字列を構築できません。この値を提供するようにコンテナを構成する必要があります」

ヘルプに移動しようとしたとき。

API の自動ドキュメントを追加するにはどうすればよいですか?

4

7 に答える 7

7

V5.2.2 には次のコードがあります。

public HelpController()
        : this(GlobalConfiguration.Configuration)
    {
    }

    public HelpController(HttpConfiguration config)
    {
        Configuration = config;
    }

HelpController で

Unity はほとんどの引数を持つコンストラクターを使用するため、パラメーターなしのコンストラクターを使用するために、2 番目のオーバーロードを保護されたものに変更しました。

    protected HelpController(HttpConfiguration config)
    {
        Configuration = config;
    }

そして、ヘルプページが戻ってきました

于 2014-12-01T13:58:58.390 に答える
3

前に答えを確認できます.HelpPageは、ルーティングと一致し、ApiControllerから継承されている場合、どこにいてもコントローラを取得します.

私はこれを探すのに何時間も費やしました。私は、ルート/APIを台無しにしているプロジェクトに追加したものに違いないと考えました。そのため、さまざまなNugetパッケージを何時間もインストール/アンインストールした後に見つけました。私のプロジェクトの問題は、Glimpse.Mvc4パッケージがインストールされていたことです。このパッケージにより、ApiExplorerが API を取得できなくなりました。これは明らかに Glimpse.Mvc4 (または Glimpse.AspNet) パッケージ内のバグか、ApiExporer 内のバグです(バグが何であるかを見つけるのに苦労しませんでした)。

これを Glimpse チームに報告します。この回答をここに投稿すると、他の人にも役立つかもしれません。

于 2013-09-16T11:46:14.177 に答える
2
  1. NuGet パッケージ マネージャーで、オンライン パッケージの中から「helppage」を検索します。
  2. インストールします (最新の .net を使用している場合でも、常に更新され、必要なすべてが実行されます)。
  3. でエリアを追加し、必要なすべてのファイルを作成します。[your_root]/Help の下でビルドしてテストします
  4. こちらの Yao のブログのビデオを見て、カスタマイズ方法の概要を簡単に確認してください。ビデオは少し古いですが、まだ有効です。
于 2013-02-20T13:59:24.353 に答える
1

ヘルプ ページに関する Yao のブログを確認してください。

http://blogs.msdn.com/b/yaohuang1/

于 2012-11-26T21:24:15.920 に答える
0

この問題に遭遇しました。これが私にとってのものでした。

以前のプロジェクト (MVC 5 と Web API 2 を使用) でヘルプ ページを使用していたので、新しいプロジェクトではそれが何か違うものであることがわかりました。古い(作業中の)プロジェクトで判明したのは、MVCコントローラーではなく、WebApiコントローラーでDIのみを行っていたことです。MVC コントローラーに DI は必要なかったので、UnityDependencyResolver を MVC 依存関係リゾルバー (私の場合は UnityMvcActivator クラス) としてブートストラップするコードをコメントアウトしただけです。

明らかに、これは誰にとっても選択肢ではありませんが、そうでない場合は、@Adrian Brown の回答が修正されるまで最善の策のように見えます。

于 2014-06-27T05:39:45.780 に答える