给定一个特定的URL,如何确定哪个控制器操作被路由到(可能在具有许多控制器和复杂路由注册表的大型应用程序的上下文中)?
我不是问如何配置路由.
解决方法
这样的控制器:
string controller = RouteData.GetrequiredString("controller");
并采取行动:
string action = RouteData.GetrequiredString("action");
例如,您可以在基本控制器类中使用它:
public class YouControllerBase: Controller { protected override void Execute(System.Web.Routing.RequestContext requestContext) { string controller = requestContext.RouteData.GetrequiredString("controller"); string action = requestContext.RouteData.GetrequiredString("action"); } }
或者在global.asax中使用它
protected void Application_BeginRequest(object sender,EventArgs e) { RouteData routeData = RouteTable.Routes.GetRouteData( new HttpContextWrapper(HttpContext.Current)); var action = routeData.GetrequiredString("action"); }