Ich habe folgend in meinem RouteConfig:MVC Parameter-Routing ist null
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{caseID}",
defaults: new { controller = "Generator", action = "Index", caseID = UrlParameter.Optional }
);
}
}
Und meine Action Methode:
public ActionResult Index(string caseID) {
//some code
var currentcase = new Something.Read(caseID);
//some other code
return View(model);
}
Meine url sieht aus wie localhost/Generator/Index/dee7aff5-0a34- 4965-936f-a08f1dae5c43
Jetzt sollte meine caseID "dee7aff5-0a34-4965-936f-a08f1dae5c43" sein, aber es ist null und ich kann nicht herausfinden, warum.
Kann mir jemand helfen?
UPDATE
Wenn die URL
localhost/Generator/Index /? CaseID = dee7aff5-0a34-4965-936f-a08f1dae5c43
statt
localhost/Generator/Index/dee7aff5-0a34-4965-936f-a08f1dae5c43
es läuft gut.
Welche Version von MVC spielt Du? Ich habe Ihren Code mit MVC 5 getestet und wenn ich dieselbe URL anrufe, die Sie geschrieben haben, wird die Aktion mit dem korrekt bewerteten Parameter aufgerufen. Oder sind Sie sicher, dass es keine anderen registrierten Routen gibt, die damit kollidieren könnten? Ihr Controller hat eine benutzerdefinierte Regel mit einem Datenattribut definiert? –
Ich benutze Version 5.2.3 – NKara