在ASP.NET MVC中,路由配置是非常重要的一部分,它決定了如何將用戶請求映射到相應的控制器和動作方法。以下是一些常見的路由配置方法:
MapRoute
方法定義默認路由,它匹配所有不符合其他路由規則的請求。routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "CustomRoute",
url: "Custom/{parameter}",
defaults: new { controller = "Custom", action = "Index", parameter = UrlParameter.Optional }
);
routes.MapRoute(
name: "ParameterizedRoute",
url: "{controller}/{action}/{id}/{parameter}",
defaults: new { controller = "Parameterized", action = "Index", id = UrlParameter.Optional, parameter = UrlParameter.Optional }
);
routes.MapRoute(
name: "NamedRoute",
url: "Custom/{parameter}",
defaults: new { controller = "Custom", action = "Index", parameter = UrlParameter.Optional },
constraints: new { parameter = @".+" }
);
在引用路由時,可以使用RouteName
屬性指定路由的名稱。
@Url.RouteUrl("NamedRoute", new { parameter = "value" })
routes.MapRoute(
name: "ConstrainedRoute",
url: "User/{id}",
defaults: new { controller = "User", action = "Details" },
constraints: new { id = @"\d+" }
);
MapRoute
方法的routePrefix
參數為所有路由添加前綴。routes.MapRoute(
name: "PrefixRoute",
url: "Admin/{controller}/{action}/{id}",
defaults: new { controller = "Admin", action = "Index", id = UrlParameter.Optional },
routePrefix: "Admin"
);
IgnoreRoute
方法忽略特定的URL模式,使其不匹配任何路由規則。routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
這些是ASP.NET MVC中常見的路由配置方法。根據應用程序的需求,可以靈活地組合和使用這些方法來定義適合的路由規則。