请参见下面的代码,该代码与我正在查看的某些代码相似:
[HttpGet]
public IActionResult Create([FromHeader(Name = "x-requestid")] string requestId)
{
return View();
}
[HttpPost]
public IActionResult Create(Person person, [FromHeader(Name = "x-requestid")] string requestId)
{
if (ModelState.IsValid)
{
string test = "got here";
}
return View();
}
requestId始终为null。如何填充requestId?
最近两个小时,我读了很多问题,例如这个:What is the X-REQUEST-ID http header?。另一个建议安装以下Nuget软件包的问题的回答者:
Microsoft.ApplicationInsights.ASPNetCore
但是,这没有什么区别。
答案 0 :(得分:0)
通常,“ x- *”标头为non-standard ones。
在Application Insights中可能恰巧使用了该特定请求,以唯一地标识一个请求,但不太可能将请求发送到包含该请求的服务器。
无论哪个客户端向您的服务器发送请求,都必须显式添加该标头,以便您在此处接收它;它不是任何标准HTTP请求的一部分。
答案 1 :(得分:0)
您必须请求名称为“ x-requestid”的标头,但应将其称为“ X-Request-ID”。只需尝试:
[HttpGet]
public IActionResult Get([FromHeader(Name = "x-request-id")] string requestId)
{
return View();
}