0
J'essaye de construire une contrainte qui vérifie la base de données. Et j'utilise Ninject, mais pour une raison quelconque, il ne crée pas une nouvelle instance de mon référentiel quand il se déclenche.Routeconstraint avec Ninject et dbcontext
Global.asax.cs
// Content
routes.MapRoute(
"Content Language Route",
"{languageID}/List",
new { controller = "Content", action = "Index",
new { languageID = new LanguageRouteConstraint() },
new string[] { "MyProj.MVC.Controllers" }
);
.....
kernel.Bind<IContentRepository>().To<ContentRepository>();
Constraint
public class LanguageRouteConstraint : IRouteConstraint
{
#region IRouteConstraint Members
private readonly IContentRepository _contentRepository;
public LanguageRouteConstraint(IContentRepository contentRepository)
{
this._contentRepository = contentRepository;
}
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
if (routeDirection == RouteDirection.IncomingRequest)
{
string languageID = values["languageID"].ToString();
if (String.IsNullOrEmpty(languageID))
return false;
MyProj.MVC.Models.Language language = _contentRepository.GetLanguage(languageID);
return (language != null);
}
return false;
}
#endregion
}
En utilisant Ninject pour le dépôt travaille dans le contrôleur, mais dois-je modifier l'itinéraire en Gobal asa pour lui pour le rendre travail?