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" />