我是.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
可能是一个选项吗?
答案 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也很新,但这是我在其他人的工作代码中看到的!