Как показать оповещение в контроллере 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

@Вики Это так просто и выполняет свою работу. Отлично сработано!