我尝试通过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");
}
}
答案 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视图和控制器完全相互分离。您只能在视图中显示信息。因此,需要使用ViewBag
,ViewData
或TempData
将要显示的信息从控制器传递到视图。如果您要显示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,其中包括一些演示图像。