You need to enable JavaScript to run this app. ASP.NET MVC自带ResetPassword功能如何获取链接携带的code参数?
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC自带ResetPassword功能如何获取链接携带的code参数?

原理说明

model.Code的填充依赖ASP.NET MVC内置的两个机制完成,整个流程如下:

  1. GET请求阶段参数自动存入ViewData
    虽然你在GET的ResetPassword方法里没有显式把code参数传递给视图,但ASP.NET MVC默认会把Action方法的所有参数自动添加到ViewData字典中,键名和参数名保持一致,也就是这里会生成ViewData["Code"] = code。
  2. HiddenFor辅助方法自动取值
    视图中用到了@Html.HiddenFor(model => model.Code)这个强类型HTML辅助方法,它的取值优先级顺序是:

ModelState字典 > ViewData字典 > 视图Model实例的对应属性
就算你没有给视图传入实例化的ResetPasswordViewModel,只要ViewData里存在Code键,这个方法就会自动把对应的值填充到隐藏输入框的value属性中,渲染出来的HTML类似:

<input type="hidden" name="Code" value="你链接里带的code值" />
  1. POST提交阶段模型绑定填充
    用户提交表单时,隐藏输入框里的Code值会随其他表单字段一起提交到POST接口,ASP.NET MVC的模型绑定会自动把这个值映射到ResetPasswordViewModel的Code属性上,最终完成参数传递。

如果你想要代码逻辑更直观,也可以把GET方法改写成显式传参的形式,效果完全一致:

[AllowAnonymous]
public ActionResult ResetPassword(string code)
{
    return code == null ? View("Error") : View(new ResetPasswordViewModel { Code = code });
}

内容的提问来源于stack exchange,提问作者Jonathan Wood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 04:15:03