C# Asp.net核心正在从请求正文中删除双反斜杠

C# Asp.net核心正在从请求正文中删除双反斜杠,c#,asp.net-core,C#,Asp.net Core,我的请求机构是: { "value": "b\\a", } 当我在中间件级别用body=wait reader.ReadToEndAsync()阅读它时我得到了相同的请求正文字符串 但当我在控制器中使用绑定值时,它只有一个反斜杠 [ProducesResponseType(201)] [HttpPost("lol")] public async Task<ActionResult> Create([FromBody]

我的请求机构是:

{
  "value": "b\\a",
}
当我在中间件级别用
body=wait reader.ReadToEndAsync()阅读它时我得到了相同的请求正文字符串

但当我在控制器中使用绑定值时,它只有一个反斜杠

[ProducesResponseType(201)]
[HttpPost("lol")]
public async Task<ActionResult> Create([FromBody] TokenDTO token)
{
    var a = token.value;
    if (a == "b\\\\a")
    {
        Console.WriteLine("EQUAL:" + a);
    }
    else
    {
        Console.WriteLine("NOT EQUAL:" + a);
    }

    return Created(token);
}
[产品响应类型(201)]
[HttpPost(“lol”)]
公共异步任务创建([FromBody]TokendToken)
{
var a=标记值;
如果(a==“b\\\\a”)
{
控制台写入线(“相等:+a”);
}
其他的
{
控制台写入线(“不等于:+a”);
}
创建的返回(令牌);
}
这里我得到了这样的回答:
不等于:b\a

是某种虫子吗?或者我应该以某种方式解码请求体


我检查了中间件是否没有通过删除它而损坏它,问题仍然存在。

实际值为b\a。JSON将\放在\前面以转义它。所以C#显示了真正的价值。换句话说,C#正在100%按预期工作。它没有损坏。@mjwills我希望得到的是一个包含\\的字符串。那么,如何从客户端应用程序传递api将接收的
b\\a
string(带两个双反斜杠)字符串?如果值为Matthew\Wills,则JSON将包含Matthew\\Wills。如果Matthew\\Wills,则JSON中的Matthew\\\\Wills。如果JSON中有
{“value”:“b\\a”}
,则该值为(无讨论,无辩论)b\a。如果他们不是这个意思,那就是调用者中的错误,而不是C#中的错误。这与C无关-这是JSON转义的工作原理-@mjwills谢谢你