5

私は System.Web.Routing を使用して URL を改善していますが、問題が発生しました。リクエストを処理している実際のページを知る必要があります。

たとえば、リクエストは次のようになります。

/basketball/home

次のように、そのリクエストを処理するページを見つける必要があります。

/management/default.aspx

私は System.Web.Routing のみを使用しており、MVC は使用していません。ルート情報の一部を含む RequestContext へのハンドルがありますが、必要なものがわかりません。

前もって感謝します。

******* アップデート *******

「ASP.management_default_aspx」を提供するContext.CurrentHandlerを使用することができました。正確にはページではありませんが、ページ名を取得するのに十分です。

4

5 に答える 5

3

実際のページを取得する別の簡単な方法があります。

String vPath = ((System.Web.Routing.PageRouteHandler)Page.RouteData.RouteHandler).VirtualPath
Page.RouteData.RouteHandler が null でないことを確認することを忘れないでください - ASP.Net ルーティングなしで直接ページを取得している間。

于 2012-07-18T08:04:12.717 に答える
2

現在の HttpContext オブジェクトからこれを取得できませんか?

おそらく次のようなものです:

public string GetCurrentPageName() 
{ 
    string sPath = System.Web.HttpContext.Current.Request.Url.AbsolutePath; 
    System.IO.FileInfo oInfo = new System.IO.FileInfo(sPath); 
    string sRet = oInfo.Name; 
    return sRet; 
} 

更新:
この記事を試しましたか?

方法: ルートから URL を作成する

作成したルーティング テーブルから取得できるはずです。

于 2009-04-06T13:28:02.200 に答える
1

vhinnのひどい答えはうまくいきました...

Page.AppRelativeVirtualPath

最初のチルダ ("~") を削除するだけで、準備完了です。

var path = Page.AppRelativeVirtualPath.Replace("~", String.Empty);

なぜそれが反対票を投じられたのかわかりません。魅力のように私のために働きました。

于 2015-01-09T02:44:09.670 に答える
0

このコードを使用してみてください:

Page.AppRelativeVirtualPath
于 2013-03-14T03:30:36.040 に答える
-1

「ASP.management_default_aspx」を提供する Context.CurrentHandler を使用することができました。正確にはページではありませんが、ページ名を取得するのに十分です。

于 2009-12-09T04:06:26.000 に答える