[C#] C #에서 현재 페이지의 전체 URL을 얻는 방법

사용자 정의 컨트롤에서 온 페이지의 전체 URL을 얻을 수 있어야합니다. 여러 요청 변수를 함께 연결하는 것입니까? 그렇다면 어느 것입니까? 아니면 더 간단한 방법이 있습니까?



답변

나는 일반적으로 Request.Url.ToString()연결을 요구하지 않고 전체 URL (querystring 포함)을 얻는 데 사용합니다.


답변

이 유형의 정보에 대해 일반적으로 참조하는 목록은 다음과 같습니다.

Request.ApplicationPath :   /virtual_dir
Request.CurrentExecutionFilePath :  /virtual_dir/webapp/page.aspx
Request.FilePath :  /virtual_dir/webapp/page.aspx
Request.Path :  /virtual_dir/webapp/page.aspx
Request.PhysicalApplicationPath :   d:\Inetpub\wwwroot\virtual_dir\
Request.QueryString :   /virtual_dir/webapp/page.aspx?q=qvalue
Request.Url.AbsolutePath :  /virtual_dir/webapp/page.aspx
Request.Url.AbsoluteUri :   http://localhost:2000/virtual_dir/webapp/page.aspx?q=qvalue
Request.Url.Host :  localhost
Request.Url.Authority : localhost:80
Request.Url.LocalPath : /virtual_dir/webapp/page.aspx
Request.Url.PathAndQuery :  /virtual_dir/webapp/page.aspx?q=qvalue
Request.Url.Port :  80
Request.Url.Query : ?q=qvalue
Request.Url.Scheme :    http
Request.Url.Segments :  /
    virtual_dir/
    webapp/
    page.aspx

잘만되면 이것이 유용 할 것입니다!


답변

Request.Url.AbsoluteUri

이 속성은 간결한 호출로 필요한 모든 것을 수행합니다.


답변

들어 ASP.NET Core당신이해야합니다 그것을 밖으로 철자 :

@($"{Context.Request.Scheme}://{Context.Request.Host}{Context.Request.Path}{Context.Request.QueryString}")

또는 뷰에 using 문을 추가 할 수 있습니다.

@using Microsoft.AspNetCore.Http.Extensions

그때

@Context.Request.GetDisplayUrl()

_ViewImports.cshtml더 나은 곳이 될 수있다@using


답변

Request.RawUrl


답변

http에서 querystring까지 모든 URL로 전체 URL이 필요한 경우 다음 변수를 연결해야합니다.

Request.ServerVariables("HTTPS") // to check if it's HTTP or HTTPS
Request.ServerVariables("SERVER_NAME")
Request.ServerVariables("SCRIPT_NAME")
Request.ServerVariables("QUERY_STRING")


답변

( MSDN 에 따라 ) Request.Url.OriginalString보다 사용하는 것이 좋습니다.Request.Url.ToString()