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");
}
}
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>
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"])
Benutze das:
return JavaScript(alert("Hello this is an alert"));
oder:
return Content("<script language='javascript' type='text/javascript'>alert('Thanks for Feedback!');</script>");
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>
<a href="@Url.Action("DeleteBlog")" class="btn btn-sm btn-danger" onclick="return confirm ('Are you sure want to delete blog?');">
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.