2009-09-08 12 views

risposta

208

Hai provato questo ?:

return RedirectToAction("action", "controller", new { area = "area" }); 
+3

Non vedo questo lavoro quando torno da un'area all'app principale. Area = "" ?? – MvcCmsJon

+23

@MvcCMsJon 'return RedirectToAction (" action "," controller ", new {area =" "});' dovrebbe farlo. – kim3er

+0

ya l'ho capito alla fine ma non l'ho mai pubblicato, lol – MvcCmsJon

32

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 = "" }); 
+3

Esattamente quello che stavo cercando, grazie per questa risposta. – Jessycormier

14

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.