2016-05-04 4 views
0

Я хочу изменить свой логин перенаправление сRedirectToAction прямой по умолчанию действия контроллера

return RedirectToAction("Index", "Home"); 

Для

return RedirectToAction("Foo", "Profile"); 

Действия Foo возвращает вид. Проблема в том, что я все еще получаю домашний/индекс.

Нужно ли мне менять маршрутизацию?

RouteConfig как это:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{id}", 
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    ); 

    routes.MapRoute(
     name: "NotFound", 
     url: "{*catchall}", 
     defaults: new { controller = "Home", action = "Index" } 
    ); 

} 
+0

действие Foo в ProfileController? – Shyju

+0

Да. Метод Foo находится в окне ProfileController. – AHJ

ответ

0

Проблема заключается в том, что после того, как перенаправление Войти перенаправлять в корень «/» URL. Вы можете сбросить его с помощью своих маршрутов. Нечто подобное ниже:

routes.MapRoute(
    name: "Default", 
    url: "{controller}/{action}/{id}", 
    defaults: new { controller = "Profile", action = "Foo", id = UrlParameter.Optional } 
); 

routes.MapRoute(
    name: "NotFound", 
    url: "{*catchall}", 
    defaults: new { controller = "Profile", action = "Foo" } 
); 

enter image description here

+0

Можно ли изменить эти маршруты из параметров базы данных? Я не могу иметь несколько маршрутов по умолчанию и т. Д. – AHJ

+0

Я пробовал это, и он все еще перенаправляется на HomeController .. Как отслеживать маршрутизацию? – AHJ

+0

Это очень странно, потому что homecontroller больше не должен связываться с маршрутами по умолчанию. Вы можете установить routedebugger как пакет nuget для отслеживания маршрутов: http://haacked.com/archive/2011/04/13/routedebugger-2.aspx/ Вы случайно установили [Маршрут] атрибут где-нибудь в домашнем контроллере? – RoteS

Смежные вопросы