页脚中的电子邮件表单在提交后消失

时间:2017-02-17 17:49:40

标签: asp.net-mvc

我是.Net MVC的新手,我是用于学习目的,在我的页脚中制作一个简单的电子邮件简报注册表。

@using (Html.BeginForm("details", "Home", FormMethod.Post))
{
    <div class="form-group form-inline">
        <label class="margin20">Sign up for newsletter</label>
        @Html.TextBoxFor(Model => Model.Email, new { id = "input1", Class = "form-control", Style = "display:inline-block; max-width:200px", Placeholder = "Example@Example.com", type = "email" })
        <button type="submit" disabled class="btn btn-default" style="display:inline-block" id="emailSignup">Signup</button>
    </div>
}

目前表单工作正常(我可以输入我的电子邮件,并在提交后收到确认邮件)。

当用户提交电子邮件时,用户将被重定向到另一个页面。但是,我希望此表单在同一页面上工作,以便在按下提交按钮后,它会显示“谢谢您订阅”而不是移动到新视图。

我想,解决这个问题的简单方法是制作一个隐藏电子邮件表单的jQuery脚本,并取消隐藏“感谢您注册”的div

但是,我想以MVC的方式做到这一点,那么最“正确”的做法是什么?我猜是@RenderSection可能是一个选项吗?

1 个答案:

答案 0 :(得分:1)

通常,它基于模型状态 - 即是否已发送电子邮件 - 使用简单标志完成。例如(非常粗略的代码);

@if (emailHasBeenSent)
{
    <div class="polite-message"> Thanks for signing up! </div>
}
else
{
    <div class="form-group form-inline"> your sign up code </div>
}

我对MVC也很新,但这是我在其他人的工作代码中看到的!