Ich bin neu bei .net mvc. Kurz gesagt, ich möchte meine Website sehen, so dass Leute tippen können: mywebsite/John @ Eric und durch den richtigen Controller verarbeitet werden.asp.net mvc routing und das mysteriöse 404
Auf der anderen Seite, würde Ich mag auch direkte Aktionen wie in der Lage sein zu spezifizieren: mywebsite/GetPeople
und erhält proccessed von GetPeople Aktion.
ich zwei Routing-Regeln eingerichtet haben in meiner Anwendung:
erste Route
routes.MapRoute("Default",
"{id}",
new { controller = "Friends", action = "Index", id = UrlParameter.Optional },
new { controller = @"[^\.]*", id = @"(?i)[a-z]*@[a-z]*" }
);
zweite Route
routes.MapRoute(
"Friends",
"{action}/{id}",
new { controller = "Friends" }
);
Die erste und die Standardroute funktioniert gut, aber dann, wenn ich eine Anfrage wie folgt sende: mywebsite/GetPeople Die Cheacky-Index-Aktion übernimmt und liest GetPeople als wäre es ein Parameter. Obwohl ich meinen wirklich tollen Regax hinzugefügt habe, scheint das nicht zu funktionieren.
Irgendwelche Ideen?
@Darin, das ist großartig. Aber was ist, wenn beide Routen von demselben Controller verwaltet werden - in diesem Fall "Friends". Das ist mein Fall, und es scheint eine Korrektur zu geben. – vondip
@vondip, versuchen Sie dann, 'controller =" Friends "' in der 'Default' Route anzugeben. Ich war verwirrt von deiner Frage, wo du über 'GetPeople'-Controller gesprochen hast, während du eigentlich die' GetPeople'-Aktion auf dem 'Friends'-Controller haben möchtest. –
@Darin, habe meine Verwechslung behoben und die Aktion als Controller benannt. Ok, ich habe es versucht, aber für meine Bestürzung scheint es nicht zu funktionieren. Nur zur Erinnerung daran, dass beide Routen demselben Controller zugeordnet sind. Es macht mich verrückt. – vondip