Ist es möglich, eine Ansicht von einem anderen Controller anzuzeigen?
Sagen Sie zum Beispiel, ich habe eine CategoriesController
und eine Category/NotFound.aspx
Ansicht. Während CategoriesController
ich in der bin, kann ich leicht zurückkehren View("NotFound")
.
Sagen Sie jetzt, ich habe eine ProductsController
und eine Aktion und Ansicht, um ein Produkt hinzuzufügen. Für diese Aktion muss jedoch eine Kategorie vorhanden sein, zu der das Produkt hinzugefügt werden kann. Zum Beispiel Products/Add/?catid=10
.
Wenn ich die Kategorie basierend auf nicht finden kann catid
, möchte ich die NotFound
Ansicht vom Categories-Controller anzeigen, anstatt eine CategoryNotFound
Ansicht unter dem Products-Controller zu erstellen .
Ist das möglich oder strukturiere ich die Dinge falsch? Gibt es eine gute Möglichkeit, dies zu tun?
new ViewResult { ViewName = "~/Views/Error/Unauthorised.cshtml" };
und es funktionierteSie können verwenden:
Es wurde in ASP.NET MVC 3 getestet, sollte aber auch in ASP.NET MVC 2 funktionieren.
quelle
"~/Views/Category/NotFound.cshtml"
.Ja es ist möglich. Geben Sie eine
RedirectToAction()
Methode wie folgt zurück:quelle
Hast du es versucht
RedirectToAction
?quelle
Ja, du kannst. Geben Sie eine Aktion wie folgt zurück:
Ein Beispiel:
Dieser Ansatz ruft die GET-Methode auf
Sie können auch Werte an folgende Aktionen übergeben:
quelle
Sie können auch einen beliebigen Controller über JavaScript / jQuery aufrufen . Angenommen, Sie haben einen Controller, der 404 oder eine andere Benutzersteuerung / Seite zurückgibt. Dann können Sie bei einer Aktion aus Ihrem Client-Code eine Adresse aufrufen, die Ihren Controller auslöst und das Ergebnis im HTML- Format zurückgibt. Ihr Client-Code kann dieses zurückgegebene Ergebnis übernehmen und an einer beliebigen Stelle auf Ihrer Seite ablegen ...
quelle
Mit diesem Code können Sie jeden Controller erhalten:
quelle