获取当前ASP.NET Web Api 2操作的Url

获取当前ASP.NET Web Api 2操作的Url,asp.net,asp.net-web-api2,Asp.net,Asp.net Web Api2,在ASP.NET Web API 2中,如何获取当前操作的Url。下面是一个示例 [HttpGet] [Route("api/someAction")] public SomeResults GetAll() { var url = /* what to write here*/ .... } ApiController基类(必须从中派生您自己的控制器)的一个属性称为Request: //摘要: //定义API控制器的属性和方法。 公共抽象类ApiController:IH

在ASP.NET Web API 2中,如何获取当前操作的Url。下面是一个示例

[HttpGet]
[Route("api/someAction")]
public SomeResults GetAll()
{

    var url = /* what to write here*/
    ....

}

ApiController
基类(必须从中派生您自己的控制器)的一个属性称为
Request

//摘要:
//定义API控制器的属性和方法。
公共抽象类ApiController:IHttpController,IDisposable
{
// ...
//
//总结:
//获取或设置当前System.Web.Http.ApicController的HttpRequestMessage。
//
//返回:
//当前System.Web.Http.ApicController的HttpRequestMessage。
公共HttpRequestMessage请求{get;set;}
// ...
}
这使您可以访问具有以下方法的
HttpRequestMessage

//
// Summary:
//     Gets or sets the System.Uri used for the HTTP request.
//
// Returns:
//     Returns System.Uri.The System.Uri used for the HTTP request.
public Uri RequestUri { get; set; }
使用
Request.RequestUri
获取当前操作的URL。它将返回一个
Uri
对象,让您可以访问请求Uri的每个部分

最后,您可能会发现以下问题非常有用:


Request.RequestUri.ToString()

在MVC上,这可以是:

Request.Url.ToString()

另见:

Request.Url.GetLeftPart(UriPartial.Authority);

两者都将返回,例如:


如果问题是关于Web API的,那么mLar在这个帖子中的回答对我来说很有吸引力。 看看这个:

Request.RequestUri.GetLeftPart(UriPartial.Authority);