如何向 MVC 5 帐户登录操作添加参数?
Posted
技术标签:
【中文标题】如何向 MVC 5 帐户登录操作添加参数?【英文标题】:How do I add a parameter to the MVC 5 Account Login action? 【发布时间】:2018-06-27 00:50:42 【问题描述】:MVC 中 Account 控制器中的登录动作有两个参数:
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
LoginStatus status = new LoginStatus();
if (!ModelState.IsValid)
return View(model);
....
我想加一个。喜欢...
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl, string anotherOne)
LoginStatus status = new LoginStatus();
if (!ModelState.IsValid)
return View(model);
....
action 的 post 是一个 html.BeginForm,比如...
@using (Html.BeginForm("Login", "Account", new ReturnUrl = ViewBag.ReturnUrl , FormMethod.Post, new @class = "form-horizontal", role = "form" ))
当我尝试向该帖子添加另一个参数时,例如...
@using (Html.BeginForm("Login", "Account", new ReturnUrl = ViewBag.ReturnUrl , new anotherOne = "testdata" , FormMethod.Post, new @class = "form-horizontal", role = "form" ))
...我猜这会破坏路由?我收到“处理您的请求时发生错误”。我猜我没有处理那个附加参数的路线?我是朝着正确的方向前进,还是有其他方法可以将附加参数传递给 Login 操作?
【问题讨论】:
【参考方案1】:您需要将BeginForm()
方法的第三个参数中的所有路由/查询字符串值添加为object
@using (Html.BeginForm(
"Login",
"Account",
new ReturnUrl = ViewBag.ReturnUrl, anotherOne = "testdata" ,
FormMethod.Post,
new @class = "form-horizontal", role = "form" )
)
【讨论】:
以上是关于如何向 MVC 5 帐户登录操作添加参数?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ASP.NET Core MVC 中使用 ADO.NET 向存储过程添加参数?