1

このプロパティを使用するViewPathと、URL に入力したものと同じ大文字が返されることに気付きました。たとえば、ビューが のようViews/Some/Pathに設定されている場合、誰か/some/pathがブラウザに入力すると、代わりにViewPathが返されます。~/Views/some/path~/Views/Some/Path

その情報を正しく大文字にする方法はありますか? レンダリングされているビューを知る必要があるだけなので、ビューへの適切なパスを取得できる限り、他のアイデアを受け入れることができます。

4

1 に答える 1

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;
}
}

ここからのアイデア。

于 2013-07-10T00:35:25.643 に答える