web-dev-qa-db-fra.com

Comment afficher un message d'alerte dans le contrôleur mvc 4?

J'ai essayé de montrer une boîte d'alerte dans le contrôleur mvc par if-else condition.Mais la boîte d'alerte ne s'affiche pas.

Manette

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");
    }
}
9
user3107343

Vous ne pouvez pas afficher une alerte d'un contrôleur. Il y a un moyen de communication entre le client et le serveur. Le serveur ne peut donc rien demander au client. Le client demande et le serveur donne une réponse.

Vous devez donc utiliser javascript lorsque la réponse revient pour afficher une boîte de message quelconque. 

OR

en utilisant jquery sur le bouton qui appelle l'action du contrôleur

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

});
<script>
8
Murdock

Ajoutez le code ci-dessous dans votre contrôleur 

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

Ajoutez le code ci-dessous dans votre fichier .cshtml (voir) 

@Html.Raw(TempData["msg"])
45
vicky

Utilisez ceci:

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

ou:

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

Il n'est pas possible d'afficher les alertes du contrôleur. Parce que les vues et les contrôleurs MVC sont entièrement séparés les uns des autres. Vous pouvez uniquement afficher des informations dans la vue uniquement. Il est donc nécessaire de transmettre les informations à afficher du contrôleur à afficher en utilisant ViewBag, ViewData ou TempData. Si vous essayez d'afficher le contenu stocké dans TempData["Message"], il est possible d'afficher dans la page d'affichage en ajoutant quelques lignes javascript.

<script>
  alert(@TempData["Message"]);
</script>
3
BPX
<a href="@Url.Action("DeleteBlog")" class="btn btn-sm btn-danger" onclick="return confirm ('Are you sure want to delete blog?');">
1
sachin wankhade