在MVC4控制器中调用jquery alert函数或方法

时间:2014-02-07 06:42:39

标签: c# jquery asp.net-mvc-4 razor

我想在mvc 4控制器中调用一个jquery警告框但是我该怎么做?

继承我的razor.cshtml中的jquery代码

    $( function errMsgBox()
    {
        alert( "Please select the Correct Activity and Task" );
        window.location = "/Memory/Create";
    } );

继承我的控制器代码

 catch (Exception ex2)
            {
                return View("Create");
            ~~here is i want to call the jquery method~~

}

3 个答案:

答案 0 :(得分:1)

您无法在控制器中使用Javascript。如果要将错误消息传递到页面中,则必须使用ViewBag或返回模型。

这是一个快速的ViewBag示例: 在控制器中

protected ActionResult Index()
{
    ViewBag.ErrorMessage = "";

    //some code
    try
    {
        //more code
    } catch(Exception ex)
    {
        ViewBag.ErrorMessage = "alertError('" + ex.Message + "');";
    }

    return View();
}

在Razor视图中:

<script type="text/javascript">
    function alertError(msg) {
        alert(msg);
        //some code
    }
    @ViewBag.ErrorMessage
</script>

与@NewAmbition建议类似,在页面完成加载后调用它:

<script type="text/javascript">
    function alertError(msg) {
        alert(msg);
        //some code
    }

    $(function() {
        @ViewBag.ErrorMessage
    });
</script>

答案 1 :(得分:0)

在控制器中:

catch (Exception ex2)
{
ViewBag.ErrorMsg = "Any string you want";
     return View("Create");
}

然后在视图“创建”中:

@if(ViewBag.ErrorMsg == "Any string you want")
{
<script type="text/javascript">
alert( "Please select the Correct Activity and Task" );
</script>
}

我希望这适合你。

答案 2 :(得分:0)

你可以试试这样的东西,如果还可以的话。

public ActionResult Index() {
   var script = "alert('Message from Server');";
   return JavaScript(script);
}