如何在mvc 4控制器中显示警报消息?

时间:2014-03-26 09:59:14

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

我尝试通过if-else条件在mvc控制器中显示一个警告框。但是没有显示警告框。我的错误是什么?

控制器

public ActionResult Index()
{
    int userId = Convert.ToInt32(Session["userId"].ToString());

    if (WebMatrix.WebData.WebSecurity.IsAuthenticated)
    {
        if (userId == 90043) 
        {
            return View();
        }
        else
        {
            TempData["Message"] = "You are not authorized.";
            return RedirectToAction("Index", "Home");
        }
    }
    else
    {
        return RedirectToAction("Index", "Home");
    }
}

7 个答案:

答案 0 :(得分:49)

TempData["msg"] = "<script>alert('Change succesfully');</script>";
@Html.Raw(TempData["msg"])

答案 1 :(得分:18)

使用此:

return JavaScript(alert("Hello this is an alert"));

或:

return Content("<script language='javascript' type='text/javascript'>alert('Thanks for Feedback!');</script>");

答案 2 :(得分:9)

您无法显示来自控制器的警报。从客户端到服务器的通信方式有一种。因此服务器不能告诉客户端做任何事情。客户端请求并且服务器给出响应。

因此,当响应返回时,您需要使用javascript来显示某种消息框。

OR

在调用控制器操作的按钮上使用jquery

<script>
 $(document).ready(function(){
  $("#submitButton").on("click",function()
  {
   alert('Your Message');
  });

});
<script>

答案 3 :(得分:3)

无法显示来自控制器的警报。因为MVC视图和控制器完全相互分离。您只能在视图中显示信息。因此,需要使用ViewBagViewDataTempData将要显示的信息从控制器传递到视图。如果您要显示TempData["Message"]中存储的内容,可以通过添加几条javascript行在视图页面中执行。

<script>
  alert(@TempData["Message"]);
</script>

答案 4 :(得分:1)

<a href="@Url.Action("DeleteBlog")" class="btn btn-sm btn-danger" onclick="return confirm ('Are you sure want to delete blog?');">

答案 5 :(得分:0)

Response.Write(@"<script language='javascript'>alert('Message: 
\n" + "Hi!" + " .');</script>");

答案 6 :(得分:0)

我知道这不是典型的警报框,但我希望它可以对某人有所帮助。

this expansion,可让您使用引导程序在HTML页面内显示通知。

这很容易实现,效果很好。这是该项目的a github page,其中包括一些演示图像。