Erreur lors de l'accès à autre chose que la route par défaut
-
03-07-2019 - |
Question
Je ne parviens pas à faire en sorte que le routage fonctionne en mono. La route par défaut fonctionne bien mais rien d’autre ne le fait.
Ce sont les routes que j'ai configurées:
routes.MapRoute(
"HelloRoute",
"Hello/{name}",
new { controller = "Home", action = "Hello" }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
et sur mon HomeController, j'ai l'action correspondante:
public ActionResult Index ()
{
ViewData["Message"] = "Welcome to ASP.NET MVC on Mono!";
return View ();
}
public ActionResult Hello(string name)
{
ViewData["Message"] = "hello "+name;
return View ();
}
maintenant si je navigue vers http: // localhost / , je reçois le message Bienvenue à ... mais si je vais sur http: // localhost / Hello / World , une erreur se produit:
value name controller does not match any of the values.
Description: HTTP 500. Demande de traitement d'erreur.
Trace de pile:
System.InvalidOperationException: le contrôleur de nom de valeur ne correspond à aucune des valeurs. sur System.Web.Routing.RouteData.GetRequiredString (System.String valueName) [0x00000] sur System.Web.Mvc.MvcHandler.ProcessRequest (System.Web.HttpContextBase httpContext) [0x00000] sur System.Web.Mvc.MvcHandler.ProcessRequest (System.Web.HttpContext httpContext) [0x00000] sur System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest (System.Web.HttpContext httpContext) [0x00000] à System.Web.HttpApplication + c__Iterator2.MoveNext () [0x00000] sur System.Web.HttpApplication.Tick () [0x00000]
est-ce que je fais évidemment quelque chose de mal?
Hormis la route supplémentaire, l'action et la vue, il s'agit d'un projet standard asp.net mvc créé dans Monodevelop.
La solution 2
Il s’avère qu’il s’agissait d’un bogue dans l’implémentation du routage mono.
J'ai rempli un rapport de bogue ici: https://bugzilla.novell.com/ show_bug.cgi? id = 500739 . Et cela a été corrigé, bien que je ne l’aie pas encore essayé.
Autres conseils
Cela ressemble à un bogue dans les modèles ASP.NET MVC pour MonoDevelop, comme suggéré dans la section commentaires de ce publier .