2010-07-08 15 views
8

Recientemente he actualizado nuestro proyecto MVC 2 en el trabajo para usar Areas, sin embargo tengo un pequeño problema con el método RedirectToAction.RedirectToAction fuera de Areas

Todavía tenemos algunos de nuestros controladores, etc. fuera de nuestras áreas. Estos controladores incluyen el controlador doméstico, etc.

¿Cómo hago un RedirectToAction desde el interior de un Área a un controlador fuera de las Áreas?

pensé algo como lo siguiente podría funcionar, pero no:

return RedirectToAction("Index", "Home", new { area = "" }); 

o

return RedirectToAction("Index", "Home", new { area = null }); 
+0

¿Quiere decir que quiere pasar a una nueva URL, fuera del controlador? ¿Me estoy poniendo bien? –

+0

Quiero redireccionar a una acción que está fuera del Área actual. –

Respuesta

21

Parece que mi solución original:

return RedirectToAction("Index", "Home", new { area = "" }); 

hace de hecho el trabajo.

No estoy seguro de cómo conseguí que no funcionara antes, pero parece que funciona como se espera ahora.

También vale la pena señalar que Visual Studio 2010 todavía me dice que Cannot resolve action 'Index' aunque el código funciona bien.

0

Trate return RedirectToAction("Index", "Home", new {area = Nothing});

Scrub lo anterior ...

Salida esto link aquí. Básicamente, pensé que intentabas hacer esto en una Vista inicialmente y no en una acción de controlador. Como veo que es una acción de controlador, debe usar RedirectToRoute para cambiar desde su área actual.

+0

Creo que nada es algo de VB.NET. Estoy usando C#. Lo intenté de todos modos solo para estar seguro, pero sí, no funciona. –

+0

De hecho es, supongo que la etiqueta C# debería haberme alertado sobre un idioma diferente :) de todos modos, encontré información adicional para que revises. – Tommy

+0

Gracias por su ayuda Tommy. ¡Probé la cosa RedirectToRoutes después de encontrarla en Google y funciona! También descubrí que mi pregunta es un poco nula ya que mi código RedirectToAction comenzó a funcionar ... Debo haber hecho algo tonto para que deje de funcionar, pero no estoy seguro de qué. –