it-swarm.com.de

Wie kann ich eine Warnmeldung in einem MVC 4 Controller anzeigen?

Ich habe versucht, ein Benachrichtigungsfeld im mvc-Controller mit der if-else-Bedingung anzuzeigen. Aber das Benachrichtigungsfeld wird nicht angezeigt. Wo liegt mein Fehler?

Regler

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

Sie können keine Warnung von einem Controller anzeigen. Es gibt eine Möglichkeit der Kommunikation vom Client zum Server. Der Server kann den Client daher nicht dazu auffordern, etwas zu tun. Der Client fordert an und der Server gibt eine Antwort.

Sie müssen daher Javascript verwenden, wenn in der Antwort eine Messagebox angezeigt wird. 

OR

verwenden Sie jquery für die Schaltfläche, die die Controller-Aktion aufruft

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

});
<script>
8
Murdock

Fügen Sie unten in Ihrem Controller Code hinzu 

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

Fügen Sie unten in Ihrer .cshtml (view) -Datei Code hinzu 

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

Benutze das:

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

oder:

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

Es ist nicht möglich, Alarme vom Controller anzuzeigen. Weil MVC-Ansichten und Controller vollständig voneinander getrennt sind. Sie können nur Informationen nur in der Ansicht anzeigen. Daher ist es erforderlich, die anzuzeigenden Informationen vom Controller an die Anzeige zu übergeben, indem entweder ViewBag, ViewData oder TempData verwendet wird. Wenn Sie versuchen, den in TempData["Message"] gespeicherten Inhalt anzuzeigen, können Sie auf der Ansichtsseite einige Javascriptzeilen hinzufügen.

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

Ich weiß, dass dies kein typisches Warnungsfeld ist, aber ich hoffe, es kann jemandem helfen.

Es gibt diese Erweiterung , mit dem Sie Benachrichtigungen innerhalb einer HTML-Seite mithilfe von Bootstrap anzeigen können.

Es ist sehr einfach zu implementieren und funktioniert gut. Hier ist eine Github-Seite für das Projekt mit einigen Demo-Bildern.

0
Matt