1

今日、かなり新しいNinject 2.0Ninject.Web.Mvc (mvc2 をターゲットとする) ソースをダウンロードし、.NET 4 (リリース構成) に対してそれらを正常にビルドしました。Ninject 2.0 を使用してアプリケーションを実行しようとすると、404 エラーが発生し続け、その理由がわかりません。

これは私のglobal.asax.csです(簡潔にするために少し短くしています):

using ...
using Ninject;
using Ninject.Web.Mvc;
using Ninject.Modules;

namespace Booking.Web
{
    public class MvcApplication : NinjectHttpApplication
    {        
        protected override void OnApplicationStarted()
        {
            Booking.Models.AutoMapperBootstrapper.Initialize();
            RegisterAllControllersIn(Assembly.GetExecutingAssembly());
            base.OnApplicationStarted();
        }

        protected void RegisterRoutes(RouteCollection routes)
        {
            ...
            routes.MapRoute(
                "Default",
                "{controller}/{action}/{id}",
                new { controller = "Entry", action = "Index", id = "" }
            );    
        }

        protected override IKernel CreateKernel()
        {
            INinjectModule[] mods = new INinjectModule[] {...};
            return new StandardKernel(mods);
        }
    }
}

EntryControllerが存在し、単純に を実行するメソッドIndexがありreturn View()ます。デバッグして、への呼び出しRegisterAllControllersIn()が実行されることを確認しました。Phil Haacks Routing デバッガーも使用しようとしましたが、それでも 404 が発生します。

この原因を見つけるにはどうすればよいですか?

4

1 に答える 1

0

ルートは登録されていますか?それは基本クラスから呼び出されていますか?

また、コントローラを正しく登録していることを確認してください。Ninject のコントローラ ファクトリがどのようにそれを期待しているかはわかりませんが、特定の名前か何かが必要になる場合があります。

于 2010-04-01T21:49:09.133 に答える