Mehrere Steuerungen mit einem Namen in ASP.NET MVC 2
Erhalte ich die folgende Fehlermeldung, wenn Sie versuchen, um mein ASP.NET MVC-Anwendung:
Antrag für "Konto" gefunden hat folgende passenden Controllern:
uqs.Controllers.Admin.AccountController
MvcApplication1.Controllers.AccountController
Suchte ich das Projekt für MvcApplication1.Controllers.AccountController
um es zu entfernen, aber ich kann nicht finden, eine übereinstimmung.
Ich versuche, registriert eine route um es zu beheben:
routes.MapRoute(
"LogAccount", //Route name
"{controller}/{action}/{id}", //URL with parameters
new { controller = "Account", action = "LogOn", id = "" },
new string[] { "uqs.Controllers.Admin" } //Parameter defaults
);
aber das trifft es nicht lösen.
Mehrere Arten wurden gefunden, die passen
der controller namens "Konto".
Wie kann ich dieses problem beheben?
InformationsquelleAutor loviji | 2010-04-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht mehr als ein Domänencontroller mit dem Namen
Account
in Ihrer Anwendung, auch in unterschiedlichen namespaces.Müssen Sie diese Steuerungen aufgeteilt, die von
Area
(eine Funktion, die in ASP.NET MVC 2).Wenn Sie die Durchführung einer Finden für
AccountController
finden Sie alle Controller, die mit NamenAccount
in Ihrer Anwendung; und verschieben Sie Sie Weg in verschiedeneAreas
wenn Sie wollen beide, oder eins löschen.InformationsquelleAutor George Stocker
Wenn Sie umgestalten Projekt und ändern Sie den Standard-Namespace und Assembly von "MVCApplication1" zu "uqs", können Sie am Ende mit 2 Baugruppen in Ihr bin-Verzeichnis (die neue und die alte). Sie erhalten diese Fehlermeldung, da der AccountController ist in beiden Versammlungen.
Reinigen Sie Ihre bin-Verzeichnis des alten MVCApplication1.dll.
Dies ist die richtige Antwort - sollte als solche akzeptiert.
Umbenannt habe ich mein Projekt und hatte die alte dll-Datei noch in meinem bin-Ordner -- diese Feste mein problem. Danke!
Sie sir, sind ein held, wir danken Ihnen herzlich! ASP.NET MVC scheint relativ unfreundlich, wenn es um die Umgestaltung von namespaces, dies ist ein weiterer Fallstrick, dass "saubere" gar nicht lösen!
InformationsquelleAutor Craig Celeste
Hatte das gleiche problem. Gereinigt bin und ich war gut zu gehen.
InformationsquelleAutor Jason H
Leicht verwirrend variation auf das problem (ähnlich, dass es bewirkt, dass die gleiche Fehlermeldung) auftreten, auch mit namespaces geliefert. MVC 3, die ich denke, ist ein wenig wählerischer als MVC 2 an dieser front.
Kurze Antwort:
Stellen Sie sicher, dass der namespace der controller ist in der Tat der namespace angegeben, in der
MapRoute
nennen!!Lange Antwort:
Habe ich 3 Bereiche :
default ("")
/Facebook
/Store
und Sie haben jeweilsAdminController
Habe ich die route zugeordnet, wie diese (für meinen Standard):
Einen request nach /admin gab die folgende Fehlermeldung :
Aber warten Sie eine minute! Habe ich nicht geben Sie die controller-namespace.... ? Was ist Los.... ?
Nun, es stellte sich heraus, meine Standard-Bereich in der admin-controller namespace war
RR_MVC.Controller
stattRolling_Razor_MVC.Controller.Main
.Aus irgendeinem Grund in MVC 2 dies ist aber nicht ein problem, aber in MVC 3 es tut. Ich denke, MVC-3 nur verlangt, dass Sie etwas präziser werden, wenn es mögliche Mehrdeutigkeiten.
InformationsquelleAutor Simon_Weaver
AccountController
wird automatisch generiert, durch die ASP.NET MVC-Visual Studio-Vorlage. Es befindet sich inControllers\AccountController.cs
. Versuchen Sie eine Suche im Projekt und löschen Sie Sie.InformationsquelleAutor Darin Dimitrov
Hatte ich dieses problem...
Gelöst, indem Sie einen project-Verweis in einer der .csproj-Dateien
InformationsquelleAutor Louis Sayers