在提交时将参数传递给控制器

时间:2017-02-15 22:03:23

标签: asp.net-mvc

所以,我开始学习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>
}

它重定向到我的“详细信息”视图,但我的电子邮件未显示。

此外,这是最佳做法吗?我想这样做吗?

1 个答案:

答案 0 :(得分:1)

@using (Html.BeginForm("Index", "Home", FormMethod.Post))呈现表单,您不需要在其中添加第二个表单(如果您需要添加class,则可以使用Html.BeginForm的重载。您的输入包含id属性,但不包含name属性。 name是在表单内部发生操作时使用的内容。