2009-09-08 21 views

Respuesta

208

¿Usted intentó esto ?:

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

no estoy viendo esta obra cuando paso de una zona de nuevo a la aplicación principal. Area = "" ?? – MvcCmsJon

+23

@MvcCMsJon 'volver RedirectToAction ("acción", "controlador", nueva {área = ""});' debe hacerlo. – kim3er

+0

ya i cuenta de eso, finalmente, pero nunca lo publicó, lol – MvcCmsJon

32

Su respuesta fue útil para mí. Sólo quería añadir a continuación:

Si desea redirigir de un área a otra área, código anterior funciona bien.

Y, si desea redirigir de un área a un controlador/vista que no está en la carpeta de área (es decir, en la mayoría de los casos, su interfaz), puede especificar area = "".

decir

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

Exactamente lo que estaba buscando, gracias por esta respuesta. – Jessycormier

14

me gustaría pedir a un seguimiento aquí. Entendiendo que

return RedirectToAction("action", "area1/controller") 

también está representado por

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

¿Cómo se puede profundizar en más anidamientos de área utilizando la misma notación? La gran ventaja de tener la notación adecuada es que, con reSharper en particular, la refactorización se maneja de forma adecuada si alguna vez necesita volver atrás y 'cambiar el nombre' de cualquiera de los controladores. Una vez que agrego un área adicional a la mezcla y los hago anidar unos dentro de otros, la notación anterior no es equivalente.

return RedirectToAction("action", "area1/area2/controller"); 

Mantendré la pregunta actualizada si la encuentro primero.


Ok, así que creo que la respuesta no es nada espectacular, pero la mejor manera de hacerlo por lo que aún obtener algún tipo de coloración válida w/ReSharper & intelisense es el siguiente:

return RedirectToAction("action","controller", new { area = "area1/area2" }); 

al menos aquí usted tendrá la capacidad de F12 o Ctrl + clic en el controlador y dirigirse hacia él y si lo que necesita hacer ningún cambio de nombre de ReSharper lo encontrará ... pero no va a realizar ningún cambio en el áreas definidas ... así que elige tus batallas.

Bajo la mayoría de condiciones, puedo evitar el uso de redirecciones del todo ... pero a veces tienes que hacer lo que tienes que hacer.

Cuestiones relacionadas