Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I have a simple API with basic routing. It was setup using the default Visual Studio 2015 ASP.NET Core API template.

I have this controller and action:

[Route("api/[controller]")]
public class DocumentController : Controller
{
    [HttpGet("info/{Id}")]
    public async Task<Data> Get(string Id)
    {
        //Logic
    }
}

So to reach this method, I must call GET /api/document/info/some-id-here.

Is it possible with .NET Core, inside that method, to retrieve as a string the complete route?

So I could do for example:

var myRoute = retrieveRoute();

// myRoute = "/api/document/info/some-id-here"
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
196 views
Welcome To Ask or Share your Answers For Others

1 Answer

You can get the complete requested url using the Request option (HttpRequest) in .Net Core.

var route = Request.Path.Value;

Your final code.

[Route("api/[controller]")]
public class DocumentController : Controller
{
    [HttpGet("info/{Id}")]
    public async Task<Data> Get(string Id)
    {
        var route = Request.Path.Value;
    }
}

Result route: "/api/document/info/some-id-here" //for example


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...