23

URL の現在のページを除く URL のすべてのパスを取得したい。たとえば、私の URL はhttp://www.MyIpAddress.com/red/green/default.aspxです。 MyIpAddress.com/red/green/」のみ。どうすれば取得できますか。私は次のようにやっています

string sPath = new Uri(HttpContext.Current.Request.Url.AbsoluteUri).OriginalString; System.Web.HttpContext.Current.Request.Url.AbsolutePath;
            sPath = sPath.Replace("http://", "");
            System.IO.FileInfo oInfo = new System.IO.FileInfo(sPath);
            string sRet = oInfo.Name;
            Response.Write(sPath.Replace(sRet, ""));

sPath には「localhost/red/green/default.aspx」が含まれているため、新しい System.IO.FileInfo(sPath) で例外が表示され、「指定されたパスの形式はサポートされていません」と表示されます。

4

5 に答える 5

93

メイン URL : http://localhost:8080/mysite/page.aspx?p1=1&p2=2

C# で URL のさまざまな部分を取得します。

Value of HttpContext.Current.Request.Url.Host
localhost

Value of HttpContext.Current.Request.Url.Authority
localhost:8080

Value of HttpContext.Current.Request.Url.AbsolutePath
/mysite/page.aspx

Value of HttpContext.Current.Request.ApplicationPath
/mysite

Value of HttpContext.Current.Request.Url.AbsoluteUri
http://localhost:8080/mysite/page.aspx?p1=1&p2=2

Value of HttpContext.Current.Request.RawUrl
/mysite/page.aspx?p1=1&p2=2

Value of HttpContext.Current.Request.Url.PathAndQuery
/mysite/page.aspx?p1=1&p2=2
于 2016-02-04T06:38:31.137 に答える
3

これを置き換えます:

            string sRet = oInfo.Name;
            Response.Write(sPath.Replace(sRet, ""));

次の場合:

        string sRet = oInfo.Name;           
        int lastindex = sRet.LastIndexOf("/");
        sRet=sRet.Substring(0,lastindex)
        Response.Write(sPath.Replace(sRet, ""));
于 2013-11-02T07:05:29.540 に答える