ASP.NetMVC-按钮如何访问url查询字符串参数



我正在进行一个密码重置项目。

用户会收到一封电子邮件,网址如下: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
    }

最新更新