WebFormView ViewPath大小写

时间:2013-07-10 00:17:20

标签: c# asp.net-mvc

使用ViewPath属性时,我注意到它返回的内容与URL中输入的内容大小相同。例如,如果我的观看次数设置为Views/Some/Path,当有人在浏览器中输入/some/path时,ViewPath将返回~/Views/some/path而不是~/Views/Some/Path

如何正确地将这些信息大写的任何想法?我真的只需要知道正在渲染的视图,所以只要我能够获得正确的视图路径,我就会接受其他想法。

1 个答案:

答案 0 :(得分:1)

您可以根据System.Web.Routing.Route编写自己的路线,将路径转换为标题大小写;如下所示:

public class LowercaseRoute : System.Web.Routing.Route
{
public LowercaseRoute(string url, IRouteHandler routeHandler) 
    : base(url, routeHandler) { }
public LowercaseRoute(string url, RouteValueDictionary defaults, IRouteHandler routeHandler) 
    : base(url, defaults, routeHandler) { }
public LowercaseRoute(string url, RouteValueDictionary defaults, RouteValueDictionary constraints, IRouteHandler routeHandler) 
    : base(url, defaults, constraints, routeHandler) { }
public LowercaseRoute(string url, RouteValueDictionary defaults, RouteValueDictionary constraints, RouteValueDictionary dataTokens, IRouteHandler routeHandler) 
    : base(url, defaults, constraints, dataTokens, routeHandler) { }

public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
{
    VirtualPathData path = base.GetVirtualPath(requestContext, values);
    TextInfo ti = new CultureInfo("en-US",false).TextInfo;

    if (path != null)
        path.VirtualPath = ti.ToTitleCase(path.VirtualPath);

    return path;
}
}
来自here

想法。