2012-05-28 18 views
86

Her ikisi de AccountController olarak adlandırılan iki denetleyicim var. Bunlardan biri, Controller A, ve Admin olarak adlandırılır ve diğer, Controller B, Area (Bu varsayılan Area? Controller B, Login adı verilen bir action method'a sahiptir. Bu hattıBaşka bir denetleyicide Eylem Yönlendirme

return RedirectToAction("LogIn", "Account"); 

sorun vardır Controller A bir action method bir girişim Controller A bir varolmayan action yönlendirmek için yapılır çünkü bu hat işletilirse zaman bir 404 elde ediyoruz var. Controller B'da action method'u aramak istiyorum. Mümkün mü?

+1

olası yinelenen http://stackoverflow.com/questions/7892094/mvc-redirect-:

Bu RedirectToAction aşırı kullanıyor – musefan

cevap

173

area ürününü routeValues parametresinde sağlayabilirsiniz. Bu deneyin:

return RedirectToAction("LogIn", "Account", new { area = "" }); 

return RedirectToAction("LogIn", "Account", new { area = "Admin" }); 

Ya

sizin için hedef konum hangi alana bağlı.

+0

, bir alandaki bir görünümden, herhangi bir alanda olmayan bir denetleyicinin hareketine geçmek istersek ne olur? MVC5'de olduğu gibi, sağ üstteki LogOff düğmesi de herhangi bir alanda yer alan donör olan AccountController'da. Ve belirli bir alanda bir görünümden LogOff istiyorum ??? –

+1

İkinci örneğim, 'alan =" "', bunu sizin için yapacak. –

+0

ThankYou çok fazla –

17

bunu kullanın:

return RedirectToAction("LogIn", "Account", new { area = "" }); 

Bu "global" alanında Account denetleyicisi LogIn eylem yönlendirir.

protected internal RedirectToRouteResult RedirectToAction(
    string actionName, 
    string controllerName, 
    Object routeValues 
) 

MSDN

[başka Denetleyicisi'nden Endeksine MVC Yönlendirme] (içinde
İlgili konular