Как показать оповещение в контроллере mvc 4?
Я попытался показать окно предупреждения в контроллере mvc по условию if-else. Но окно предупреждения не отображается. Где моя ошибка?
контроллер
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");
}
}
Ответы
Ответ 1
Вы не можете показать предупреждение от контроллера. Существует одностороннее сообщение от клиента к серверу. Поэтому сервер не может сообщать клиенту что-либо делать. Запросы клиента и сервер дают ответ.
Поэтому вам нужно использовать javascript, когда ответ вернется, чтобы показать какой-либо почтовый ящик.
ИЛИ
с помощью jquery на кнопке, вызывающей действие контроллера
<script>
$(document).ready(function(){
$("#submitButton").on("click",function()
{
alert('Your Message');
});
});
<script>
Ответ 2
TempData["msg"] = "<script>alert('Change succesfully');</script>";
@Html.Raw(TempData["msg"])
Ответ 3
Используйте это:
return JavaScript(alert("Hello this is an alert"));
или
return Content("<script language='javascript' type='text/javascript'>alert('Thanks for Feedback!');</script>");
Ответ 4
Невозможно отобразить предупреждения от контроллера. Потому что представления и контроллеры MVC полностью отделены друг от друга. Вы можете отображать информацию только в представлении. Поэтому необходимо передать информацию, которая будет отображаться из контроллера, для просмотра с использованием ViewBag
, ViewData
или TempData
. Если вы пытаетесь отобразить содержимое, хранимое в TempData["Message"]
, это можно выполнить на странице просмотра, добавив несколько строк JavaScript.
<script>
alert(@TempData["Message"]);
</script>
Ответ 5
<a href="@Url.Action("DeleteBlog")" class="btn btn-sm btn-danger" onclick="return confirm ('Are you sure want to delete blog?');">
Ответ 6
Response.Write(@"<script language='javascript'>alert('Message:
\n" + "Hi!" + " .');</script>");
Ответ 7
Я знаю, что это не типичное окно оповещения, но я надеюсь, что это может кому-то помочь.
Это расширение позволяет отображать уведомления внутри HTML-страницы с помощью начальной загрузки.
Это очень легко реализовать и работает хорошо. Вот страница github для проекта, включающая некоторые демонстрационные изображения.
Ответ 8
@Вики Это так просто и выполняет свою работу. Отлично сработано!