当OnBegin为true时,Ajax.ActionLink不起作用

时间:2014-05-21 05:16:58

标签: ajax asp.net-mvc actionlink

我打算在单击ActionLink时调用函数,并且根据函数的输出将转到下一页或显示警报。

当在Ajax.ActionLink中OnBegin为true时,它应该触及控制器方法,因此转到指定的视图。但是当我点击ActionLink时,OnBegin返回true但没有任何反应。我看到了同一页。

<script src="~/Scripts/jquery-2.1.0.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>


@using (@Html.BeginForm())
{  

    @Ajax.ActionLink("Add Document", // <-- Text to display
                                     "AddDocument", // <-- Action Method Name
                                    "Home", // <-- Controller Name
                                    null,
                                    new AjaxOptions { OnBegin = "OnBegin('AddDocument')" },
                                    null
                                    )



}

<script type="text/javascript">
    function OnBegin(vObject) {
        debugger;      

        return true;       
    }

</script>

任何帮助都将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:1)

我认为你是以错误的方式使用它。 @Ajax.ActionLink将命中您的控制器并检索响应的内容,但您没有设置任何空间来保存响应。 AjaxOptions的其中一个属性是UpdateTargetId,应将其设置为保存响应的id标记。

@Ajax.ActionLink("Add Document", "AddDocument", "Home", 
    new AjaxOptions 
    { 
        OnBegin = "OnBegin('AddDocument')",
        UpdateTargetId = "responseContent"
    })

在视图中放置一个标记来保存响应:

<div id="responseContent"></div>

响应将插入div