【问题标题】:ninject mvc and asp.net mvc2 don't work on vwd express 2010ninject mvc 和 asp.net mvc2 在 vwd express 2010 上不起作用
【发布时间】:2011-04-01 21:26:54
【问题描述】:

ninject mvc 和 asp.net mvc2 有什么问题?我试图在 vwd 2010 express 上设置一个简单的项目,但似乎 ninject 控制器工厂无法正确创建控制器,这是我的代码

public class MvcApplication : Ninject.Web.Mvc.NinjectHttpApplication
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Nom d'itinéraire
            "{controller}/{action}/{id}", // URL avec des paramètres
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Paramètres par défaut
        );

    }

    protected override void OnApplicationStarted()
    {            
        AreaRegistration.RegisterAllAreas();

        RegisterRoutes(RouteTable.Routes);
    }


    protected override IKernel CreateKernel()
    {
        return new StandardKernel(new ServiceModule());
    }

    #region Module d'injection de depandance

    internal class ServiceModule : NinjectModule
    {
        public override void Load()
        {
            Bind<IMyService>().To<MyServiceImpl>();
        }
    }

    #endregion
}

控制器代码

public class MyController : Controller
{
    private IMyService myService;

    public MyController(IMyService myService)
    {
        this.myService = myService;
    }


    public ActionResult Index()
    {
        return View();
    }
}

提前致谢

【问题讨论】:

  • 你能提供任何错误信息或任何东西让我们继续吗?
  • 谢谢,当我运行项目时,我有一个错误提示“没有为 MyController 找到无参数构造函数”

标签: asp.net-mvc asp.net-mvc-routing ninject.web


【解决方案1】:

我解决了这个问题,我忘了为 DAO 设置绑定,所以当 ninject 无法解析对象图时,它会将控制器的创建委托给默认工厂,这需要一个无参数的构造函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多