0

Global.asaxでは、以下を使用してルートを登録します。

MapRoute(this System.Web.Routing.RouteCollection routes, 
    string name, 
    string url, 
    object defaults, 
    string[] namespaces)

string urlコードからを取得する方法はありますか?具体的には、次のような登録済みルートのURLからルートセグメントを取得することに関心があります。

"customRoutePrefix/{controller}/{action}/{id}"

登録済みのルートについては、「customRoutePrefix」または同等のものを検索する必要があります。

私はこれを行うために使用できるかもしれないと思っSystem.Web.Routing.RouteTable.Routesたが、私はそこにそれを見つけられなかった。

これは可能ですか/どうすればよいですか?

4

1 に答える 1

1

はい。

次を使用できます。

this.RouteData.Values["segment name"]

例えば、

this.RouteData.Values["controller"];

編集1

このコードは、登録されているすべてのルートURLを取得するためのトリックを実行します

var res = new List<string>();

foreach (var item in RouteTable.Routes)
{
    var r = (Route)item;

    res.Add(r.Url);
}

this.ViewBag.Res = res;

あなたの見解では:

@foreach (var item in this.ViewBag.Res)
{
    <div>@item</div>
}

結果:

Chapter14/{controller}/{action}/{id}
Movies/{controller}/{action}/{id}
api/{controller}/{id}
{resource}.axd/{*pathInfo}
{resource}.svc/{*pathInfo}
{controller}/{action}/{id}
wcf/{*pathInfo}
于 2012-10-25T20:07:37.290 に答える