从返回ActionResult的Action执行JavaScript

时间:2012-07-09 21:15:16

标签: asp.net-mvc razor error-handling

我正在尝试在我的MVC项目中实现错误处理机制。我正在寻找一种方法在同一页面上向用户显示错误消息。我试过了 -

returning JavaScript(..) - 但是,这不起作用,因为我通过ActionLink而不是Ajax调用操作。我无法通过Ajax调用它,因为即使页面第一次加载时也可能生成错误

returning Content(..) - 这不会显示警告

我在catch块中执行此操作 -

public ActionResult Index()
{
    try
    {
        //something that generates an exception
    }
    catch(Exception e)
    {
        //show an alert with the error through JS
    }
}

有没有办法执行javascript来向用户显示错误而不使用Ajax调用来执行操作?

1 个答案:

答案 0 :(得分:1)

您可以执行类似

的操作
    catch(Exception e) 
    {
       ViewBag.Error = "error:" + e.ToString();
    }

    return View();

在您的视图中绑定

    <%if(ViewBag.Error != null) 
    {%>
      <script type="text/javascript">
        alert('<%=ViewBag.Error%>');
      </script>
    <%}%>