【问题标题】:Ajax.ActionLink does not work when OnBegin is true当 OnBegin 为真时,Ajax.ActionLink 不起作用
【发布时间】:2014-05-21 13:43:32
【问题描述】:

我打算在单击 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>

任何帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: ajax asp.net-mvc actionlink


    【解决方案1】:

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

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

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

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

    响应将插入div

    【讨论】:

    • 根据以下链接,不需要 UpdateTargetId stackoverflow.com/questions/12359222/…
    • 工作代码:@Ajax.ActionLink("Add Document", "AddDocument", "Home", null, new AjaxOptions { OnBegin = "return OnBegin('AddDocument');", UpdateTargetId = "响应内容" }), null )
    猜你喜欢
    • 2011-12-24
    • 2011-06-25
    • 2019-02-22
    • 2021-07-06
    • 2012-02-05
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    • 2016-05-03
    相关资源
    最近更新 更多