如何在MVC控制器中使用消息框?

Neo*_*Neo 9 c# model-view-controller asp.net-mvc razor asp.net-mvc-3

注册完成后我创建了mvc应用程序,我被重定向到感谢页面.

但不是我想显示消息弹出,那我该怎么做呢.我的代码:

[HttpPost]
public ActionResult Enquiry(Enquiry enquiry)
{
    if (ModelState.IsValid)
    {
        dbEntities.Enquiries.AddObject(enquiry);
        dbEntities.SaveChanges();
        enquiry.SendEnquiryEmail(enquiry);

        return RedirectToAction("Thankyou"); 
    }

    return View(enquiry);
}

//redirect to thankyou page
public ActionResult Thankyou()
{
    return View();
}
Run Code Online (Sandbox Code Playgroud)

Rey*_*lds 14

确保视图中的"警报"仅在您打算显示时(从您的ThankYou方法重定向)而不是在某人意外导航到您的"ThankYou"视图时

//redirect to thankyou page
public ActionResult Thankyou()
{
    TempData["alertMessage"] = "Whatever you want to alert the user with";
    return View();
}
Run Code Online (Sandbox Code Playgroud)

然后在"ThankYou"视图中,这个:

   if(null != TempData["alertMessage"])
   {
      <script type="text/javascript">
       alert("@TempData[alertMessage]");
      </script>
   }
Run Code Online (Sandbox Code Playgroud)

这将像往常一样为任何JavaScript写出脚本.希望这可以帮助!


vic*_*cky 5

在控制器中使用此代码

public ActionResult Edit(CoverLetterModel model)
{
    TempData["msg"] = "<script>alert('Change succesfully');</script>";
}
Run Code Online (Sandbox Code Playgroud)

在视图中使用此代码

@Html.Raw(TempData["msg"])
Run Code Online (Sandbox Code Playgroud)


Dhr*_*ala 5

@雷诺兹

您的答案是完美的。

在Razor中,可以替换以下行

alert("@TempData[alertMessage]");
Run Code Online (Sandbox Code Playgroud)

通过以下

alert('@TempData["alertMessage"]');
Run Code Online (Sandbox Code Playgroud)

PS。注意引号

  • 答案很简单。它对我不起作用,所以我知道这是由于引号引起的。一旦我确定了报价,它就起作用了。 (2认同)