it-swarm.com.de

So erhalten Sie den URL-Pfad in C #

Ich möchte den gesamten Pfad der URL mit Ausnahme der aktuellen URL-Seite erhalten, z. B .: Meine URL ist http://www.MyIpAddress.com/red/green/default.aspx Ich möchte " Nur http://www.MyIpAddress.com/red/green/ ". Wie kann ich es schaffen? 

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, ""));

Seine Ausnahmebedingung auf dem neuen System.IO.FileInfo (sPath) als sPath enthält "localhost/red/green/default.aspx" und die Angabe "Das angegebene Pfadformat wird nicht unterstützt."

15
Nomi Ali

Behandle es nicht als URI-Problem, sondern als Zeichenkettenproblem. Dann ist es schön und leicht.

String originalPath = new Uri(HttpContext.Current.Request.Url.AbsoluteUri).OriginalString;
String parentDirectory = originalPath.Substring(0, originalPath.LastIndexOf("/"));

Ist wirklich so einfach!

Bearbeitet, um fehlende Klammern hinzuzufügen.

11
jwa

Haupt-URL: http: // localhost: 8080/mysite/page.aspx? P1 = 1 & p2 = 2

Verschiedene Teile der URL in C # abrufen.

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
65
Shibu Thomas

Ersetze dies:

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

Mit folgendem:

        string sRet = oInfo.Name;           
        int lastindex = sRet.LastIndexOf("/");
        sRet=sRet.Substring(0,lastindex)
        Response.Write(sPath.Replace(sRet, ""));
3

benutze das

string sPath = (HttpContext.Current.Request.Url).ToString();
sPath = sPath.Replace("http://", "");
var oInfo = new  System.IO.FileInfo(HttpContext.Current.Request.RawUrl);
string sRet = oInfo.Name;
Response.Write(sPath.Replace(sRet, ""));
2
Ratna

Dies kann dazu führen, dass Sie möchten, wenn Sie nur versuchen, zu einer anderen Seite Ihrer Website zu navigieren. Der absolute Pfad wird jedoch nicht angezeigt, wenn Sie dies wirklich benötigen. Sie können innerhalb der Site navigieren, ohne den absoluten Pfad zu verwenden.

string loc = "";
loc = HttpContext.Current.Request.ApplicationPath + "/NewDestinationPage.aspx";
Response.Redirect(loc, true);

Wenn Sie wirklich den absoluten Pfad benötigen, können Sie die Teile herausnehmen und mit der Uri-Klasse das bauen, was Sie brauchen:

Uri myUri = new Uri(HttpContext.Current.Request.Url.AbsoluteUri)
myUri.Scheme
myUri.Host  // or DnsSafeHost
myUri.Port
myUri.GetLeftPart(UriPartial.Authority)  // etc.

Guter Artikel zum Thema ASP.NET-Pfade.

0
B H