在Ajax.actionlink的OnSuccess回调上调用javascript函数?

时间:2015-05-28 15:09:45

标签: jquery asp.net-mvc-5 unobtrusive-ajax

我正在使用MVC5。我正在使用Unobtrusive Ajax.ActionLink()从列表中加载图像。以下是示例代码: -

<ul class="list-group list-unstyled lists">
@foreach (var item in Model)
{
<li>
@Ajax.ActionLink(@item.Name,
        @item.Action,
        "Home",
        new {id = @item.Id },
        new AjaxOptions
        {
            UpdateTargetId = "divImage",
            InsertionMode = InsertionMode.Replace,
            HttpMethod = "GET",
            OnSuccess = "enableZoom"
        })
</li>
}
</ul>

OnSuccess回调我调用了一个函数&#39; enableZoom&#39;。只要它在视图页面的脚本标记内,它就可以工作。但是当我将enableZoom函数移动到custom.js文件时,OnSuccess回调无法找到或调用它。

<script>
    function enableZoom() {
        $("#divImage").zoom({
            on: "grab",
            magnify: "1"
        });
    }
</script>

PS:我的custom.js文件已成功加载(通过firebug确认),custom.js也有其他功能,并且正在运行。任何线索/帮助将不胜感激?

1 个答案:

答案 0 :(得分:0)

尝试在单独的js文件中使用以下内容。由于您使用的是Jquery函数,因此您需要确保在Js文件之前加载Jquery。

MyNamespace = {} || MyNamespace();
MyNamespace.EnableZoom = function() {
    $("#divImage").zoom({
            on: "grab",
            magnify: "1"
        });
};

您应该能够通过 MyNamespace.EnableZoom()

来调用此功能

OnSuccess =&#34; MyNamespace.EnableZoom&#34;

试一试。祝你好运。