Asp.net mvc 如何从RouteData获取操作信息?
我使用以下代码从RoutedData获取控制器/操作信息Asp.net mvc 如何从RouteData获取操作信息?,asp.net-mvc,Asp.net Mvc,我使用以下代码从RoutedData获取控制器/操作信息 RouteData route = RouteTable.Routes.GetRouteData(httpContext); string controller = route.GetRequiredString("controller"); string action = route.GetRequiredString("action"); 但是,如果Global.asax.cs中的路线图没有包含“controller”的部分,我是否
RouteData route = RouteTable.Routes.GetRouteData(httpContext);
string controller = route.GetRequiredString("controller");
string action = route.GetRequiredString("action");
但是,如果Global.asax.cs中的路线图没有包含“controller”的部分,我是否应该更改字符串“controller”,如下所示:
routes.MapRoute(
"Default", // Route name
"{NOTCONTROLLER}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
谢谢 否。您的路线数据将始终具有“控制器”键。如果您查看路线:
routes.MapRoute(
"Default", // Route name
"{NOTCONTROLLER}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
RouteTable.Routes.GetRouteData返回的内容来自controller=“Home”
,而不是来自“{NOTCONTROLLER}/{action}/{id}”
。注册路由时,大括号中的任何内容都会映射到操作中具有相同名称的参数,除了指定控制器或动态操作的{controller}
和{action}
之外。更详细地阅读MVC路由
要了解路线并了解它们的工作原理,请尝试一下。如果您陷入无法确定路线工作原理的困境,这将是非常宝贵的。谢谢,我非常感谢!