: An Introduction to ASP.NET MVC Extensibility
당신은 사용자 정의 MvcRouteHandler 작성할 수
public class LangRouteHandler : MvcRouteHandler
{
protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
{
if (requestContext.RouteData.Values.ContainsKey("lang"))
{
var culture = new CultureInfo(requestContext.RouteData.Values["lang"].ToString());
if (culture != null)
{
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
}
}
return base.GetHttpHandler(requestContext);
}
}
을 그리고 당신의 경로에서이 routehandler를 사용 이렇게 :
routes.MapRoute(
name: "Default",
url: "{controller}/{lang}/{action}/{id}",
defaults: new { controller = "Home", lang = "en", action = "Index", id = UrlParameter.Optional }
).RouteHandler = new LangRouteHandler();
출처
2012-10-25 11:21:59
Wim
감사합니다. 매력처럼 작동합니다. 위대한 링크도 – maxlego
하나의 질문 ... 기본 routehandler로 내 사용자 지정 경로 처리기를 만들 수 있습니까? – maxlego
그렇게 생각하지 마십시오. 그러나 MVC 프로젝트에서 MapRoute 확장 메소드의 소스 코드를 확인하려면 오픈 소스 여야합니다. – Wim