Bước 1: Tạo các hạn chế đường.
public class RootRouteConstraint<T> : IRouteConstraint
{
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
var rootMethodNames = typeof(T).GetMethods().Select(x => x.Name.ToLower());
return rootMethodNames.Contains(values["action"].ToString().ToLower());
}
}
Bước 2:
Thêm một ánh xạ tuyến đường mới trên bản đồ mặc định của bạn có sử dụng các hạn chế con đường mà chúng ta vừa tạo ra. Tham số chung phải là lớp điều khiển bạn định sử dụng làm bộ điều khiển "Gốc" của bạn.
routes.MapRoute(
"Root",
"{action}",
new {controller = "Home", action = "Index", id = UrlParameter.Optional},
new {isMethodInHomeController = new RootRouteConstraint<HomeController>()});
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new
{controller = "Home", action = "Index", id = UrlParameter.Optional}
);
Bây giờ bạn sẽ có thể truy cập vào các phương pháp điều khiển ngôi nhà của bạn như sau: example.com/about, example.com/contact
này sẽ chỉ ảnh hưởng đến HomeController. Alll Bộ điều khiển khác sẽ có chức năng định tuyến mặc định.
Điều đó hoạt động hoàn hảo! Cảm ơn bạn .... thứ tự quan trọng ở đây ... Tôi đã làm điều đó chính xác trước đó, tuy nhiên ... nó đã được theo con đường mặc định mà làm cho nó không hoạt động. Tuyệt vời của bạn, cảm ơn! – BRogers
Cảm ơn bạn .... –
Hoạt động thực sự tốt! – Kbdavis07