我需要将一些数据从URL传递给MVC中的控制器。数据在此代码中的@Value = @Request.QueryString [" rt"]中:
@using (Html.BeginForm("ResetPasswordToken", "Account")){
@Html.AntiForgeryToken()
@Html.ValidationSummary(true, "Reset Password non riuscito")
<div class="container above-footer login-form">
<div class="col-md-6" align="center" style=" margin-left:25%; margin-top:100px; margin-bottom:100px;">
<div class="editor-label">
@Html.LabelFor(m => m.ResetToken)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.ResetToken, new { @Value = @Request.QueryString["rt"] })
@Html.ValidationMessageFor(m => m.ResetToken)
</div>
当我继续与此视图关联的提交按钮时,我需要在AccountController中检索此值。如果没有在页面中看到它,最好的模式是什么?
我知道这是一个非常简单的问题,但我明天只需做这个修改,而且我很忙。感谢大家,对不起这个问题
答案 0 :(得分:2)
在呈现此视图的控制器操作中(GET操作):
model.ResetToken = Request["rt"];
return View(model);
然后在视图中简单地说:
@Html.TextBoxFor(m => m.ResetToken)
或者如果您不希望在表单中显示它,您也可以使用隐藏字段:
@Html.HiddenFor(m => m.ResetToken)
现在,当表单提交回ResetPasswordToken
操作时,您可以从模型中读取此值:
[HttpPost]
public ActionResult ResetPasswordToken(MyViewModel model)
{
// you can use the model.ResetToken property here to read the value
}
或者,您可以在生成HTML表单的action
属性时将此值包含在网址的一部分中:
@using (Html.BeginForm("ResetPasswordToken", "Account", new { ResetToken = Request["rt"] }))
{
...
}