솔루션 01 (속성 라우팅)
이
routes.MapMvcAttributeRoutes();
RouteConfig
에서 다른 경로의 정상에 선 아래 추가
그런 다음 원하는대로 각 작업 위에 속성 경로를 추가하십시오. (이 경우 홈 컨트롤러의 동작)
예 : 코드 샘플 http://site/Home/About에서 "/ 홈"을 제거하고 http://site/About
[Route("About")]
public ActionResult About()
{
솔루션 (경로 제약 조건을 사용하여) 02 [Source]에서 사용할 수 아래
은 다음과 RouteConfig에 새 경로 매핑을 추가합니다. (기본 (일반) 경로 전에 이러한 특정 경로를 추가해야합니다.
routes.MapRoute(
"Root",
"{action}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new { isMethodInHomeController = new RootRouteConstraint<HomeController>() }
);
을이 홈 컨트롤러 RootRouteConstraint 클래스
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());
}
}
의 모든 작업 (경로)에서 "홈"을 제거합니다 선택 사항 정보 :이 행 (제약)은 HomeController에만이 라우팅을 적용합니다.
new { isMethodInHomeController = new RootRouteConstraint<HomeController>
e 컨트롤러의 각 동작에 대한 특정 경로 –