【发布时间】:2015-12-24 20:27:24
【问题描述】:
我在尝试使用 RedirectToAction() 时遇到问题。
在我的RouteConfig.cs 我有这样的东西:
routes.MapRoute(
name: "Custom",
url: "myroot/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = "0" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = "0" }
);
从我的控制器,如果我尝试这个:
public ActionResult Contact()
{
return RedirectToAction("About", "Home");
}
我得到这个网址:
http://localhost:51547/myroot/Home/About
这不是我所期望的。如果我试试这个:
return RedirectToRoute("Default", new { controller = "Home", action = "About" });
我得到这个网址:
http://localhost:51547/Home/About
这对我来说很有意义。
谁能解释为什么RedirectToAction 在URL 中添加myroot/ 前缀而不是匹配Default 路由?
谢谢!
【问题讨论】:
-
看起来您已经在使用具有该前缀的方法
-
您好斯蒂芬,感谢您的回复。实际上,我在默认的 MVC 应用程序中对此进行了测试。我的方法是这样的: public ActionResult Contact() { return RedirectToAction("About", "Home");当我编写此 URL (localhost:12345/Home/Contact) 时,它会转到“关于”视图,将 myroot/ 前缀写入 url,如上所述。
-
你的方法是什么? (你还没有显示)
标签: c# asp.net-mvc-5 redirecttoaction