Bla*_*axy 25 .net c# asp.net-core-mvc .net-core asp.net-core
我有一个基本路由的简单API.它是使用默认的Visual Studio 2015 ASP.NET Core API模板设置的.
我有这个控制器和动作:
[Route("api/[controller]")]
public class DocumentController : Controller
{
[HttpGet("info/{Id}")]
public async Task<Data> Get(string Id)
{
//Logic
}
}
Run Code Online (Sandbox Code Playgroud)
所以要达到这个方法,我必须打电话GET /api/document/info/some-id-here.
是否可以使用.NET Core,在该方法中,以字符串形式检索完整路径?
所以我可以这样做:
var myRoute = retrieveRoute();
// myRoute = "/api/document/info/some-id-here"
Run Code Online (Sandbox Code Playgroud)
Bal*_*thu 32
您可以使用 .Net Core中的Request选项(HttpRequest)获取完整的请求URL .
var route = Request.Path.Value;
Run Code Online (Sandbox Code Playgroud)
你的最终代码.
[Route("api/[controller]")]
public class DocumentController : Controller
{
[HttpGet("info/{Id}")]
public async Task<Data> Get(string Id)
{
var route = Request.Path.Value;
}
}
Run Code Online (Sandbox Code Playgroud)
结果路由:"/ api/document/info/some-id-here" //例如
您还可以要求MVC根据当前路由值创建新的路由URL:
[Route("api/[controller]")]
public class DocumentController : Controller
{
[HttpGet("info/{Id}")]
public async Task<Data> Get(string Id)
{
//Logic
var myRoute = Url.RouteUrl(RouteData.Values);
}
}
Run Code Online (Sandbox Code Playgroud)
Url.RouteUrl是一个帮助方法,允许您在给定任何路径值的情况下构建路径URL.RouteData.Values为您提供当前请求的路由值.
| 归档时间: |
|
| 查看次数: |
21567 次 |
| 最近记录: |