adı için bir denetleyici döndürmedi Bir Alanı bir denetleyicide bir görünüm açmaya çalıştığımda alıyorum. yerine denetleyicisinde, == nullIControllerFactory 'MyWebSite.WebUI.Infrastructure.NinjectControllerFactory' 'Admin'
context.RouteData.DataTokens.Values[0] = “MyWebSite.WebUI.Areas.Visitor” context.RouteData.DataTokens.Values[1] = “Visitor” which is the Area
context.RouteData.Values.Values[0] = “admin” which is the Controller
context.RouteData.Values.Values[1] = “register” which is the View
Ancak controllerType: Ben bir kesme noktası kodu yerleştirirseniz
public class NinjectControllerFactory : DefaultControllerFactory
{
private IKernel kernel = new StandardKernel(new RLSBCWebSiteServices());
protected override IController GetControllerInstance(RequestContext context, Type controllerType)
{
if (controllerType == null)
return null;
return (IController)kernel.Get(controllerType);
}
private class MyWebSiteServices : NinjectModule
{
public override void Load()
{
Bind<IMatchesRepository>().To<SqlMatchesRepository>().WithConstructorArgument("connectionString",
ConfigurationManager.ConnectionStrings["MyWebSiteDb"].ConnectionString);
}
}
}
, ben RequestContext bağlam aşağıdaki değerleri içerir bakın şu şekildedir: Ninject kurulur ad.
yeni sayfaya Bu transfer Girişi sayfada olup
Html.ActionLink("here", "Register", "Admin", new { area = "Visitor" }, null)
tetiklediği. Ancak IE8
içine
http://example.com/Visitor/admin/register
girerseniz aynı şey aşağıdaki gibi alan kaydı gerçekleşir:
public class VisitorAreaRegistration : AreaRegistration
{
public override string AreaName { get { return "Visitor"; } }
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Visitor_default",
"Visitor/{controller}/{action}/{id}",
new { controller = "Admin", action = "Register", id = UrlParameter.Optional }
);
}
}
kimse NinjectControllerFactory ile çalışan Alanları başardı Has, ya da orada yanlış bir şey olduğunu kurulumumla mı?
Bunu yaparken Ninject'i indirdiğimde şuna baktım ama kullandığım .dll dosyasının derlenmiş versiyonu olduğunu düşündüm. Bu yüzden şimdi bu sürümü indirdim, ancak dokümanlar çok seyrek. Bir şeyleri düzeltmeme yardım edebilecek bir şey varsa? – xiecs
Örnek uygulamaya bir göz atın. Bu kaynak kodu –
kaynak kodu ile birlikte geliyor, indirdim ve Ninject web sitesini başarıyla görüntüledim. Kaynağa baktığımda, istediğimden çok daha karmaşık, Spark, Elmah, Newtonsoft'taki gibi. Birçoğu benim üzerimde. Web sitenizdeki Alanları kullanmadığınızı fark ettim. Ayrıca JavascriptRouteGenerator.cs iyi bir göz vardı. Orada, Alanları ele almayı önerecek hiçbir şey yok gibi görünüyor. Burada listelenemeyecek kadar büyük olan kaynak koduna göre bazı değişiklikler yaptım. İstenen URL'yi bulamadığını söyleyen bir hata mesajı alıyorum. – xiecs