Lij*_*raj 3 asp.net-mvc redirecttoroute
我只是对为什么我的RedirectToRoute()方法不起作用感到困惑。我有一个像这样的RouteConfig.cs文件
routes.MapRoute(
"pattern1",
"{action}",
new { controller = "Home", action = "About" }
);
routes.MapRoute(
"pattern2",
"{controller}/{action}/{id}",
new { controller = "Admin", action = "Index", id = UrlParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)
在此配置上,默认控制器Home和action About被调用,现在在action方法中,我使用以下值调用RedirectToRoute():
public ActionResult Index()
{
return View();
}
public ActionResult About()
{
return RedirectToRoute("pattern2");
}
Run Code Online (Sandbox Code Playgroud)
为什么RedirectToRoute()不调用Admin / Index操作
小智 6
这是因为您定义的路线。RedirectToRoute() 重定向到您定义的路由。您为“pattern2”定义的 URL 为“{controller}/{action}/{id}”。如果你想使用只接受routeName的重载,那么你需要在RouteConfig中显式定义url。例子:
routes.MapRoute(
"pattern2",
"Admin/Index",
new { controller = "Admin", action = "Index", id = UrlParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)
如果您不想显式定义 url,则需要使用 RedirectToRoute() 的不同重载,它接受 routeValues 对象。
小智 5
尝试这个:
return RedirectToRoute(new
{
controller = "Admin",
action = "Index",
id = null
});
Run Code Online (Sandbox Code Playgroud)
您也可以使用RedirectToAction()方法。似乎更直观。
| 归档时间: |
|
| 查看次数: |
8624 次 |
| 最近记录: |