Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Web API控制器中获取绝对URL?_C#_Rest_Asp.net Core_Asp.net Core Webapi_.net 5 - Fatal编程技术网

C# 在Web API控制器中获取绝对URL?

C# 在Web API控制器中获取绝对URL?,c#,rest,asp.net-core,asp.net-core-webapi,.net-5,C#,Rest,Asp.net Core,Asp.net Core Webapi,.net 5,在我的控制器中,由于超出此问题范围的原因,我无法使用createdataaction。 因此,我需要执行以下操作,但是我不知道如何获取Web API的绝对URL,以正确设置位置标题 public async Task<ActionResult<string>> PostItem(ItemPostRequest itemPostRequest) { // call repository etc. string baseUrl= // <-------

在我的控制器中,由于超出此问题范围的原因,我无法使用
createdataaction
。 因此,我需要执行以下操作,但是我不知道如何获取Web API的绝对URL,以正确设置
位置
标题

public async Task<ActionResult<string>> PostItem(ItemPostRequest itemPostRequest)
{
    // call repository etc.

    string baseUrl= // <------- how to get this?
    Response.Headers.Add("Location", baseUrl + insertId);

    return Content(savedItem, "application/json", System.Text.Encoding.UTF8);
}
公共异步任务PostItem(ItemPostRequest ItemPostRequest)
{
//调用存储库等。

string baseUrl=//谢谢,在第一次测试后看起来很有希望。请注意,
Request.Path
可以包含一个尾随斜杠。想知道是否需要手动检查,或者是否有更合适的解决方案谢谢,在第一次测试后看起来很有希望。请注意,
Request.Path
可以包含一个尾随斜杠。想知道一个s手动检查,或者有更舒适的解决方案
string baseUrl = $"{Request.Scheme}://{Request.Host.Value}/{Request.Path}";