所以,我开始学习MVC,我需要将电子邮件传递给控制器。 (尝试制作标准的电子邮件注册)
因此我有一个输入和一个按钮(应该)将输入传递给接受控制器的参数,然后重定向到另一个视图。
我有以下控制器:
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(string mail)
{
person = new EmailSignup{Email = mail};
return RedirectToAction("details");
}
public ActionResult details()
{
return View(person);
}
这就是我在观点中所拥有的:
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
<form class="col-md-12">
<div class="form-group form-inline">
<label class="margin20">Sign up for newsletter</label>
<input type="Email" class="form-control" style="display:inline-block; max-width:200px" id="mail" placeholder="Example@Example.com" />
<button type="submit" class="btn btn-default" style="display:inline-block" id="emailSignup">Signup</button>
</div>
</form>
}
它重定向到我的“详细信息”视图,但我的电子邮件未显示。
此外,这是最佳做法吗?我想这样做吗?
答案 0 :(得分:1)
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
呈现表单,您不需要在其中添加第二个表单(如果您需要添加class
,则可以使用Html.BeginForm
的重载。您的输入包含id
属性,但不包含name
属性。 name
是在表单内部发生操作时使用的内容。