Ich versuche, URLs in asp.net MVC5 zu erstellen. Das Verhalten, das ich sehen bin für unter:Asp.net MVC5 Route Parameter Problem
http://www.example.com/es/faqs ----> when language is Spanish
http://www.example.com/faqs ----> when language is english
Meine Route für diese URL:
routes.MapRoute(
name: "FAQs",
url: "{lang}/FAQs",
defaults: new { controller = "StaticPages", action = "FAQs", lang= UrlParameter.Optional }
);
Diese URL macht in Spanisch finden ->http://www.example.com/es/faqs
Aber mein Problem ist, dass diese URL funktioniert nicht richtig ->http://www.example.com/faqs
Wenn ich versuche, diese URL zu besuchen, bekomme ich eine Seite nicht gefunden Fehler.
In meiner Route versuche ich, lang (Sprachcode) optional zu machen, warum funktioniert meine Route nicht, wenn kein Sprachcode in der URL enthalten ist.
Optionale Parameter sind vermutlich das Letzte in der Routenvorlage. Es funktioniert nicht, wenn nach dem optionalen Parameter etwas vorhanden ist. – Nkosi
Sie können sich [diese Antwort] (http://stackoverflow.com/a/32839796/181087) für die Verwaltung der Standardsprache ansehen. Es ist auch möglich, ein Dekorationsmuster in der 'Route'-Klasse zu verwenden und/oder ein benutzerdefiniertes Attribut-Routing zu verwenden, so dass nicht jede Route dupliziert werden muss. – NightOwl888