Ich habe ein Problem mit einer Gebietsroute in MVC 5. Wenn ich nach / Evernote / EvernoteAuth browse, bekomme ich einen Fehler 404 Fehler gefunden.
Mein Bereich sieht so aus:
%Vor%Die EvernoteAreaRegistration.cs (UPDATE: RegisterArea () wurde nicht aufgerufen, also habe ich ein Clean und Rebuild. Jetzt heißt es aber dasselbe Ergebnis.) enthält diese Routemap:
%Vor%Die Index () - Methode von EvernoteAuthController gibt einfach View () zurück.
Die RouteConfig.cs meiner Anwendung hat derzeit keine Routenkarten definiert, aber ich habe versucht, sie manuell zu erzwingen, indem ich folgendes implementiere:
%Vor%aber ich bekomme die gleichen Ergebnisse, ob diese Routemap existiert oder auskommentiert ist.
Mit Phil Haacks asp.net mvc routing Debugger habe ich das gesehen Meine Routen stimmten gut überein und der Name des Bereichs, der Name des Controllers und die Namen der Aktionsmethoden stimmten überein. Ich habe Haltepunkte in die Controller-Aktionsmethoden gesetzt und diese Methoden wurden nie eingegeben. UPDATE: Diese Methoden wurden nie beim Browsen nach / Evernote / EvernoteAuth eingegeben. Wenn ich jedoch nur den Gebietsnamen / Evernote durchsucht habe, wurde ein EvernoteAuthController instanziiert und die Index () -Methode aufgerufen. (Warum wird dieser Controller von / Evernote nicht von / Evernote / EvernoteAuth instanziiert?) Dann erhielt ich den Fehler:
%Vor% In diesem Fall glaube ich ~ = / (Anwendungsstamm). Daher wird der Bereich Areas\Evernote\Views
nicht durchsucht.
Wie behebe ich Fehler?
Wie Sie in meinem Beitrag in Ссылка gefunden haben, haben Sie wahrscheinlich herausgefunden, dass Alle -Controller werden der Standardroute zugeordnet (dh der Route, die Sie manuell in Ihrer Routenkonfiguration hinzugefügt haben). Wenn es der Standardroute hinzugefügt wurde, durchsucht es den Standort nach der Standardroute für seine Ansichten, d. H.% Co_de%
Der Fehler scheint wirklich zu sein, dass der Bereich nicht richtig konfiguriert ist. Stellen Sie sicher, dass Sie die folgende Zeile in Ihrer Global.asax.xs haben:
%Vor% Dies ist die Zeile, die die Bereiche tatsächlich einrichtet und sicherstellt, dass, wenn ein Controller in einem Bereich getroffen wird, das View-Verzeichnis dieses Bereichs durchsucht wird, in Ihrem Fall ~/Views/...
. Die Sache, die in meinem Blogpost behandelt wurde, war, wie man eliminiert, dass Controller aus Ihrem Evernote-Bereich in der Standardroute zugeordnet werden.
Hoffe diese Hilfe!
Grüße
Håkan
Seien Sie vorsichtig mit AreaRegistration.RegisterAllAreas();
in% Application_Start
Methode.
Wenn Sie AreaRegistration.RegisterAllAreas()
als letztes in Application_Start
einfügen, funktioniert das nicht.
Setzen Sie AreaRegistration.RegisterAllAreas()
auf den ersten Platz und das Routing wird erfolgreich ausgeführt.
Beispiel:
%Vor%Tags und Links asp.net-mvc asp.net asp.net-mvc-routing