如何在asp.net mvc中从控制器调用javascript警报

如何在asp.net mvc中从控制器调用javascript警报,javascript,c#,asp.net,asp.net-mvc,Javascript,C#,Asp.net,Asp.net Mvc,我需要从asp.net mvc中的控制器中的操作返回警报消息,是否可能?我尝试获取页面实例并调用RegisterJavaScript函数,但页面实例始终为null,因为我了解到它现在是MVC处理程序而不是页面处理程序。我知道我可以返回javscript结果,但我的操作是在重定向之前重定向到另一个url,我需要显示消息。谁能帮帮我吗?我不能使用viewbag或viewdata,因为它位于我需要显示消息的帖子上,并且在帖子完成后不会返回到视图。因此,无法检查变量值并显示消息 public Act

我需要从asp.net mvc中的控制器中的操作返回警报消息,是否可能?我尝试获取页面实例并调用RegisterJavaScript函数,但页面实例始终为null,因为我了解到它现在是MVC处理程序而不是页面处理程序。我知道我可以返回javscript结果,但我的操作是在重定向之前重定向到另一个url,我需要显示消息。谁能帮帮我吗?我不能使用viewbag或viewdata,因为它位于我需要显示消息的帖子上,并且在帖子完成后不会返回到视图。因此,无法检查变量值并显示消息

  public ActionResult RedirectToURL(ObjectData obj)
    {                      

        if (ModelState.IsValid())
        {
            process code here                
        }
        else
        {
           ModelState.AddModelError("Error", "Fill in the required fields");
           return View("TestView", ObjectData);
        }     

        //Post data to the URL.
        //Prepare Data to Post

        //Need JavaScript call here....            

        return this.RedirectAndPost(Url, dataToPost);
    }

您必须在查看时使用viewbag来传输消息

此外,您还需要设置viewbag值不为null的条件,以便在其显示为“无”消息时不会显示警报

  @if(ViewBag.message!=null)
       {
           <script type="text/javascript">
          alert( "@(ViewBag.AlertMessage)");
          </script>
       }
@if(ViewBag.message!=null)
{
警报(@(ViewBag.AlertMessage)”;
}

如果您需要在发布之前或发布期间向客户端显示消息,为什么不让“提交”按钮触发一些显示消息的javascript,然后继续发布?您无法显示来自服务器代码的警报,因为代码在服务器上,而javascript是客户端代码。我不是100%清楚你的代码流程,如果你能解释重定向发生的原因等。可能会提供另一种解决方案。你最好使用JavaScript将Ajax返回到服务器,然后读取状态代码,这样你就可以将JavaScript重定向到所述位置,然后让初始控制器索引相应地填充模型。