成功后提交show welcome-modal

我有表格

@using (Html.BeginForm("Register", "Account", FormMethod.Post, new {id = "registrationForm"})) {...}

我把一些数据(电子邮件,密码等)放在哪里

我也有这种forms的方法:

[HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public ActionResult Register(RegisterViewModel model) {... return RedirectToAction("Index");}

在那种方法中,我管理模型(尝试创建新用户),如果一切都成功。 重定向到行动“索引”。


问题 :我需要在创建新用户之后但在重定向之前显示带有一些文本“Welcome …”的bootstrap模式。 我该怎么做?


我尝试为该表单调用ajax submit(仅用于显示该模式的成功操作,但没有成功)

您可以选择在模型中存储消息,然后在页面上使用剃刀,检查该属性是否具有值,如果存在,则在页面底部执行脚本。

就像是

 @if (Model.Message != null){  } 

请参见此处: http : //getbootstrap.com/javascript/#modals

编辑:如果您希望在重定向之前显示它,那么您可以使用@ Ajax.ActionLink

基本上,您将提交表单,然后在成功时,您可以设置将执行的javascript函数。 此时,您可以调用对话框。

您可以使用bootstrap模式的隐藏事件然后触发重定向

 $('#myModal').on('hidden.bs.modal', function (e) { // do something... like a redirect }) 

UPDATE

这是一个非常粗略的例子,我真的很快。 除此之外使用Ajax表单:

使用全新的全新项目,在Index.cshtml页面上添加了以下内容

 @using (Ajax.BeginForm("Register", "Home", new AjaxOptions() { HttpMethod = "Post", OnSuccess = "success" })) { @Html.TextBox("name")  }   @section scripts{  } 

控制器:

 [HttpPost] public ActionResult Register(string name) { return View("Index"); } 

不要忘记包含jquery.unobtrusive-ajax.min.js文件(如果没有安装该软件包,请从nuget获取)