2017-02-17 33 views
0

Im新的.Net MVC和IM用于学习目的,在我的页脚中创建一个简单的电子邮件时事通讯注册表单。页脚中的电子邮件表单在提交后消失

@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 = "[email protected]", type = "email" }) 
     <button type="submit" disabled class="btn btn-default" style="display:inline-block" id="emailSignup">Signup</button> 
    </div> 
} 

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

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

即时通讯思想,是最简单的方式来解决这个将是使一个jQuery脚本隐藏电子邮件的形式和取消隐藏一个div,上面写着“感谢您注册”

然而,我想要做的这在MVC方式中,那么最“正确”的做法是什么? @RenderSection可能是我猜的一个选项?

回答

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也很新,但这是我从其他人的代码中看到的!

+0

这就是天才。非常感谢你! –

+0

@JeppeChristensen确保您接受答案,如果它适合你! –

+0

我相信有更多经验的人可以提出更好的方法,但是谢谢! – Grim