0

新しいMVC4プロジェクトを作成しました。これは、作業中のデフォルトのテンプレート化されたコンテンツが多すぎるためです。認証を「なし」に設定し、コントローラー、基本クラス、ビューモデル、バリデーター(Fluent Validation)などのかなりの数のコンポーネントをコピーしました。元のHomeコントローラーとビューを保持しました。

その元のHomeページは、そのIndexアクションを通じて、機能するすべてです。私の「インポートされた」コントローラーはすべて、から派生しますが、そうComairRIControllerではありHomeませんが、コントローラーの1つからこの継承を削除しController、と同じようHomeに、から継承しようとしても効果はありません。私はまだ404を取得します。

プロジェクトはエラーや警告なしでビルドされ、ホーム/インデックスビューを開いて正常に実行されます。ここで何が間違っている可能性がありますか?どうすればこれを診断できますか?私のコンストラクターはComairRIController呼び出されないので、リクエストはまったく進んでいません。

私はデフォルトルート構成を使用しています:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}

重要な情報:ソースプロジェクト(純粋なMVC4)と宛先プロジェクト(Orchardモジュール)はどちらもまったく同じ名前で、デフォルトの名前空間を持っています。できるだけ多くの名前空間の不一致を回避するために、意図的にこれを行いました。

新しい情報: NuGetを介してElmah 2.0.2を追加し、XMLファイルにログを記録するように設定しました。404ごとにエラーがログに記録されます。エラーは次のとおりです(簡潔にするためにスタックトレースを省略しました)。

<error errorId="db2b4236-b913-4b98-878e-f3e02fdff321" 
    application="/" 
    host="7F3KH5J" 
    type="System.Web.HttpException" \
    message="The controller for path '/ApplicantProfile/Start' was not found or does not implement IController." 
    source="System.Web.Mvc" 
    detail="System.Web.HttpException (0x80004005): The controller for path '/ApplicantProfile/Start' was not found or does not implement IController.&#xD;&#xA;

興味深いことに、Elmah.axdのリクエストも404を返します。

4

1 に答える 1

0

既存のプロジェクトからいくつかのコンポーネントをコピーしたと述べましたが、ホーム/インデックス アクション以外のビューをコピーしたかどうかについては言及しませんでした。

他のコントローラーに一致するビューがない可能性がありますか?

于 2013-02-07T14:57:10.410 に答える