2017-12-20 1 views
0

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.

+0

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? –

+0

Ich benutze Version 5.2.3 – NKara

Antwort

0

ersetzen CaseID mit der ID in Ihrer route.config Datei hoffentlich wird es mit der ID als auch in Ihrer Aktion work.and

+0

Ich habe versucht, aber leider funktioniert das nicht – NKara