, . MVC 5.1 . foreach, URL- , "{culture}/" placeholder. , about {culture}/about ..
5.0, System.Web.Routing.Route. 5.1 . LinkGenerationRoute, , . , routes.MapMvcAttributeRoutes();, , . , , : .
foreach Url, NOT , LinkGenerationRoute. , , . , (_innerRoute) , , .
, - .
[Route("{culture}/about")], [Route("{culture}/contact")], [Route("{culture}/product/{productId:int}")] ..
. . this.GetVirtualPath(requestContext, values);
internal class LinkGenerationRoute : Route
{
private readonly Route _innerRoute;
public LinkGenerationRoute(Route innerRoute)
: base(innerRoute.Url, innerRoute.Defaults, innerRoute.Constraints, innerRoute.DataTokens,
innerRoute.RouteHandler)
{
if (innerRoute == null)
{
throw Error.ArgumentNull("innerRoute");
}
_innerRoute = innerRoute;
}
public override RouteData GetRouteData(HttpContextBase httpContext)
{
return null;
}
public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
{
return _innerRoute.GetVirtualPath(requestContext, values);
}
}