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

ASP.Net MVC - How can a button access url query string parameters?

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

用户会收到一封包含 url 的电子邮件,例如: mysite.com/ResetPass?id=10&token=233rgths567sdsfg

这包含 url 中的用户 ID 和 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
    }