如何在发布表单后显示提交成功消息

时间:2018-04-01 17:59:47

标签: c# asp.net asp.net-mvc

当用户在$middleware页面成功提交时,我想在Index页面上显示成功提交的消息。

我的Register行动包括:

Register

我的[HttpPost] [ValidateAntiForgeryToken] public ActionResult SaveRegister(AirlineWebApplication.Models.User User, HttpPostedFileBase file) { db.Users.Add(User); db.SaveChanges(); return RedirectToAction("Index"); } 视图包括以下内容。

Register

如何显示成功的消息&#34;您已成功注册&#34;当我按下<section class="registersection"> <div class="container-fluid"> <div class="row"> <div class="signupForm"> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12"> @using (Html.BeginForm("SaveRegister", "Users", FormMethod.Post)) { @Html.ValidationSummary(true) @Html.AntiForgeryToken() <div class="editor-field"> <label>Name @Html.EditorFor(model => model.user_name) </label> @Html.ValidationMessageFor(model => model.user_name) </div> <div class="editor-field"> <label>Password @Html.EditorFor(model => model.password) </label> @Html.ValidationMessageFor(model => model.password) </div> <p> <input type="submit" value="Register" /> </p> } </div> </div> </div> </div> </section> 按钮时,在Index页上?

2 个答案:

答案 0 :(得分:0)

在Visual Studio中创建新项目时,您可以看到如何显示确认消息的示例。

您可以创建一个新视图,比如RegisterConfirmation,然后在您的控制器中,更改最后一行:

return RedirectToAction("Index");

为:

return View("RegisterConfirmation");

编辑建议不要在主Index页面上显示消息。如果您想这样做,则需要将消息传递到Index页面:

string message = "You have registered successfully";
return RedirectToAction("Index", "Home", new { m = message });

然后在index页面的控制器中,您需要从查询字符串中获取消息并将其添加到模型或ViewBag

public ActionResult Index(string m) {
    ViewBag.Message = m;
}

最后在index视图中,您可以在页面上的div中显示消息:

<div>@ViewBag.Message</div>

或者,您可以将div设为弹出式窗口。使用CSS非常简单。

如果您不想使用查询字符串(可能更好),可以使用TempData代替:

TempData["Message"] = "You have registered successfully";
return RedirectToAction("Index", "Home");

Index视图中:

<div>@TempData["Message"]</div>

答案 1 :(得分:0)

有很多方法可以做到这一点。例如,在您的控制器中使用TempData来了解您的来源:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult SaveRegister(AirlineWebApplication.Models.User User,
    HttpPostedFileBase file)
{

    db.Users.Add(User);
    db.SaveChanges();
    TempData["Referrer"] = "SaveRegister";
    return RedirectToAction("Index");
}

在索引视图中:

@if((string)TempData["Referrer"] == "SaveRegister")
{
    <div class="alert alert-success">
      <strong>You have registered successfully</strong>
    </div>
}

与ViewBag不同,TempData会持久保存到下一个请求,以便它适合重定向到不同的页面并从那里检索值。