显示警报消息:在“确定”按钮上单击“RedirectToAction”

els*_*eus 1 asp.net-mvc alert

我试图在尝试存储过程后显示成功/不成功的消息。单击“保存”按钮时会调用“保存 ActionResult” - 但是在重定向回索引之前,我想显示一个消息框。有没有办法先返回视图,然后再返回RedirectToAction?

保存按钮指向:

 [HttpPost]
    public ActionResult Save(string submit, Models.KnownIssues knownIssue)
    {           

        UpdateKnownIssue(knownIssue);
        InsertKnownIssue(knownIssue);


        return RedirectToAction("Index");

    }
Run Code Online (Sandbox Code Playgroud)

视图袋警告:

    public ActionResult Edit(KnownIssues knownIssue, string submit)
    {
        if (UpdateKnownIssue(knownIssue))
        {
            ViewBag.ShowAlert = "<script>alert('Successfully Edited');  window.location.href = '/KnownIssues';</script>";
        } else
        {
            ViewBag.ShowAlert = "<script>alert('Unseccessful. Try again.');</script>";
        }
        return View(knownIssue);
    }
Run Code Online (Sandbox Code Playgroud)

Lai*_*man 6

尝试这个:

return RedirectToAction("Index", "Home", new { ac = "success" });
Run Code Online (Sandbox Code Playgroud)

在索引视图中执行以下操作(注意:我正在使用引导警报):

@{
    var parameter = Request.QueryString["ac"];
    //Check parameter here and display Message
    if (parameter == "success")
    {
      <div class="alert alert-success alert-dismissable">
          <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
          <strong><i class="fa fa-exclamation-triangle" aria-hidden="true"></i> Record Added Successfully.</strong>
      </div>
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:

更好的方法可能是使用 TempData,特别是如果您不想在 url 中使用变量。

您可以在控制器中设置 TempData,如下所示:

TempData["SuccessMessage"] = "Your Success Message";
Run Code Online (Sandbox Code Playgroud)

并在视图中通过检查 TempData 中是否有任何内容来显示消息:

@if (TempData["SuccessMessage"] != null)
 {
    <div class="alert alert-success alert-dismissable">
         <strong>@TempData["SuccessMessage"]</strong>
    </div>
 }
Run Code Online (Sandbox Code Playgroud)