如何在重定向到新视图之前在控制器中创建警报提示?

时间:2017-04-07 04:01:21

标签: javascript c# asp.net-mvc

是否可以在重定向到新视图之前在控制器中创建警报提示?我想让用户在将它们引导到下一个视图之前在当前视图中确认一条消息

using System.Web.Mvc;
using System.Web.Security;
using MvcApplication.Models;

[HttpPost]
public ActionResult Login(LoginModel model, string returnUrl)
{
    if (!this.ModelState.IsValid)
    {
        return this.View(model);
    }

    if (Membership.ValidateUser(model.UserName, model.Password))
    {
        FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);

***// Here! create an alert with a close button using javascript and make the user acknowledge it by clicking a button and closing the alert before redirecting the user*** 

        if (this.Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
            && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
        {
            return this.Redirect(returnUrl);
        }

        return this.RedirectToAction("Index", "Home");
    }

    this.ModelState.AddModelError(string.Empty, "The user name or password provided is incorrect.");

    return this.View(model);
}

4 个答案:

答案 0 :(得分:1)

制作自定义ActionFilter并将此操作过滤器放在Controller的操作

public class CustomActionFilter : System.Web.Mvc.ActionFilterAttribute
{
    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        filterContext.Controller.ViewBag.StartupScript = "Your Message Goes here";
        base.OnActionExecuted(filterContext);
    }
}

您在_Layout页面上的javascript代码如下

<script type="text/javascript" defer="defer">
     alert('@Html.Raw(ViewBag.StartupScript)');
 </script>

你是控制器动作

 [CustomActionFilter]
 public ActionResult Helo(
 {
     //Some Stuff here
 }

答案 1 :(得分:1)

从该方法返回一些带有消息的视图,带有链接和/或自动重定向。

暂停&#34;暂停&#34;处理控制器以将消息发送回用户!!

答案 2 :(得分:0)

是的,可以从控制器显示(javascript)警告框。 只需将以下行添加到控制器即可。 试试这个可能对你有帮助。

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

答案 3 :(得分:0)

您可以在MVC中使用ViewBag添加它。您可以将您的javascript代码放在ViewBag中,如:

ViewBag.Javascript = "<script language='javascript' type='text/javascript'>alert('Your message');</script>";

然后导航到您的页面。