Adım 1: rota kısıtlamasını oluşturun.
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());
}
}
Adım 2:
az önce oluşturduğumuz rota kısıtlamasını kullanan varsayılan eşleme üzerinde yeni bir rota eşleme ekleyin. Jenerik parametre, “Root” kontrol cihazınız olarak kullanmayı planladığınız kontrolör sınıfı olmalıdır.
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}
);
Şimdi şöyle ev denetleyici yöntemlerine erişmek mümkün olmalıdır: example.com/about, sadece HomeController etkiler
Bu işlem example.com/contact. Alll diğer Denetleyicileri, varsayılan yönlendirme işlevselliğine sahip olacaktır.
Mükemmel çalıştı! Teşekkür ederim .... sipariş önemli ... Tam olarak daha önce yaptım, ancak ... işe yaramaz olan varsayılan yolun altındaydı. Müthiş, teşekkürler! – BRogers
Teşekkür ederim efendim .... –
Gerçekten iyi çalışıyor! – Kbdavis07