C# 为什么当我将代码字符串从视图传递到控制器时,它会突然出现?

C# 为什么当我将代码字符串从视图传递到控制器时,它会突然出现?,c#,asp.net,asp.net-core-mvc,asp.net-identity,C#,Asp.net,Asp.net Core Mvc,Asp.net Identity,我已重置密码令牌: string resetPasswordToken = await _userManager.GeneratePasswordResetTokenAsync(user); 从电子邮件链接转到重置密码后,我将此令牌和电子邮件传递给查看: [HttpGet] public IActionResult ResetPassword([FromQuery] string token, string email) { var model = new

我已重置密码令牌:

 string resetPasswordToken = await _userManager.GeneratePasswordResetTokenAsync(user);
从电子邮件链接转到重置密码后,我将此令牌和电子邮件传递给查看:

  [HttpGet]
    public IActionResult ResetPassword([FromQuery] string token, string email)
    {
        var model = new ResetPasswordViewModel
        {
            Email = email,
            Token = token
        };
        return View(model);
    }
问题是,当我试图将此令牌从视图传递到控制器时,令牌在符号+或“”之前被裁剪。 我的看法是:

裁剪后的标记:

CfDJ8IgVu4V4NxlJoKOV2esH3C3b0PdYklCHqKIB5Qsh0bvnrX4AXaDWgnpJbwCRupsVEKuOYxPctOSe7VqQe
属性值周围缺少

这:

<input name="Token" type="hidden" value=@Model.Token/>

应该是这样的:

<input name="Token" type="hidden" value="@Model.Token"/>

但是,您应该考虑使用标签助手,而不是手动创建属性值,这样您就不必担心HTML编码,例如:

<input type="hidden" asp-for="Token" />


请更新您的帖子,以包含GET生成的HTML(在浏览器中查看源代码)以及提交到帖子端点的有效负载(从Chrome Developer Tools->Network tab)。DavidG,之后,它传递了完整字符串,但将“+”替换为“查看我的更新”(即将添加它,但在会议中被转移)
<input name="Token" type="hidden" value=@Model.Token/>
<input name="Token" type="hidden" value="@Model.Token"/>
<input type="hidden" asp-for="Token" />