Esiste un modo per reindirizzare a un'azione/controller specifici su un'area diversa?RedirectToAction tra aree?
risposta
Hai provato questo ?:
return RedirectToAction("action", "controller", new { area = "area" });
tua risposta è stata utile per me. Volevo solo aggiungere qui sotto:
Se si desidera reindirizzare da un'area a un'altra area, il codice sopra funziona bene.
E, se si desidera reindirizzare da un'area a un controller/vista che non è presente nella cartella di area (vale a dire nella maggior parte dei casi, il front-end), è possibile specificare area = "".
cioè
return RedirectToAction("action", "controller", new { area = "" });
Esattamente quello che stavo cercando, grazie per questa risposta. – Jessycormier
vorrei chiedere a un follow-up qui. Fermo restando che
return RedirectToAction("action", "area1/controller")
è rappresentata anche dalla
return RedirectToAction("action", "controller", new { area = "area1" });
Come si fa a drill-down in ulteriori nesting Area utilizzando la stessa notazione? Il grande vantaggio nell'avere la notazione appropriata è che, con reSharper in particolare, il refactoring viene gestito in modo appropriato se è necessario tornare indietro e "rinominare" uno qualsiasi dei controller. Dopo aver aggiunto un'area aggiuntiva al mix e averli annidati l'uno nell'altro, la notazione precedente non è equivalente.
return RedirectToAction("action", "area1/area2/controller");
Terrò la domanda aggiornata se la trovo prima.
Ok, quindi credo che la risposta non è nulla di spettacolare, ma il modo migliore per farlo in modo ancora ottenere un qualche tipo di colorazione valido w/ReSharper & intellisense è la seguente:
return RedirectToAction("action","controller", new { area = "area1/area2" });
Almeno qui avrai la possibilità di F12 o Ctrl + Fare clic sul controller e di essere indirizzato verso di esso e se è necessario fare qualsiasi ridenominazione del Resharper lo troverà ... ma NON apporterà alcuna modifica al aree definite ... quindi scegli le tue battaglie.
Nella maggior parte delle condizioni, posso evitare di utilizzare completamente i reindirizzamenti ... ma a volte devi fare ciò che devi fare.
Non vedo questo lavoro quando torno da un'area all'app principale. Area = "" ?? – MvcCmsJon
@MvcCMsJon 'return RedirectToAction (" action "," controller ", new {area =" "});' dovrebbe farlo. – kim3er
ya l'ho capito alla fine ma non l'ho mai pubblicato, lol – MvcCmsJon