我正在进行一个密码重置项目。
用户会收到一封电子邮件,网址如下:mysite.com/ResetPass?id=10&令牌=233rgth567sdsfg
这包含一个用户Id和url中的JWT令牌作为参数。
MVC控制器显示密码重置页面。
[HttpGet("ResetPass")]
public IActionResult ResetPass([FromQuery] int id, [FromQuery] string token)
{
// How to send the id and token from the Url query string to the Button???
return View("ResetPass");
}
// Reset Password Button
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> ResetPassButton()
{
// How to access the user id and token?
}
我想在这个页面上有一个表单,允许用户更改他们的密码,然后将新密码、用户Id和令牌发送到API进行处理。
但是,我如何将变量从url(用户id和令牌(获取到按钮?
我只是使用Viewbag并将它们传递到页面吗?或者按钮有没有办法只访问Url查询字符串?
您可以创建重置密码模型并传递此模型。示例:
public class ResetPasswordModel
{
public int Id { set; get; }
public string Token { set; get; }
}
然后:
public IActionResult ResetPass([FromQuery] int id, [FromQuery] string token)
{
var model = new ResetPasswordModel {
Id = id,
Token = token,
}
return View("ResetPass", model);
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> ResetPassButton(ResetPasswordModel model)
{
// do something with model
}