questions net mvc examen exam developing asp applications asp.net-mvc asp.net-mvc-areas redirecttoaction

asp.net mvc - net - RedirectToAction entre áreas?



exam 70-486 (3)

¿Has probado esto ?:

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

¿Hay alguna manera de redirigir a una acción / controlador específico en un Área diferente?


Me gustaría pedir un seguimiento aquí. Entendiendo eso

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

También está representado por

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

¿Cómo se profundiza en nuevas anidaciones de áreas usando 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, entonces creo que la respuesta no es nada espectacular, pero la mejor manera de hacerlo es que consigas una especie de coloración válida con resharper e intellisense:

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

Al menos aquí tendrás la capacidad de F12 o Ctrl + Haz clic en el controlador y dirígete hacia él. Si necesitas hacer un cambio de nombre, Resharper lo encontrará ... pero NO realizará ningún cambio en las áreas definidas. ... así que elige tus batallas.

En la mayoría de las condiciones, puedo evitar usar redirecciones por completo ... pero a veces tienes que hacer lo que tienes que hacer.


Tu respuesta fue útil para mí. Solo quería agregar a continuación:

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

Y, si desea redirigir desde 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 = "".

es decir

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