Ajax.ActionLink AjaxOptions回调(ASP.NET MVC 3)问题

| 我在
PartialView
中有一个
Ajax.ActionLink
,如下所示:
@Ajax.ActionLink(Model.IsVisible ? \"Disable\" : \"Enable\", \"ToggleVisibility\", \"Review\", new { area = \"Admin\", id = Model.Id }, new AjaxOptions { HttpMethod = \"POST\", OnComplete = \"onComplete_AdminReviewOption\" })
和处理JavaScript函数(目前在主View上内联声明):
function onComplete_AdminReviewOption(ajaxContext) {
    var jsonObject = ajaxContext.get_object();
}
这会引发JavaScript错误:   
Object# has not definition for get_object()
。 我以为这些JavaScript方法是
MicrosoftAjax.js
/
MicrosoftMvcAjax.js
脚本的一部分,我都在页面中包含了这两个脚本。 谁能确认这些助手方法存在于哪个库中? 我在
Layout.cshtml
文件中加载了所需的脚本,然后进行了AJAX调用以渲染上面的PartialView。 因此,当我处理该功能时,库已被加载-这就是为什么我感到困惑。 有任何想法吗?     
已邀请:
您似乎正在使用ASP.NET MVC 3和Razor。在此版本中,jQuery是默认的客户端脚本框架。没有更多的
MicrosoftAjax.js
(感谢上帝)。所以:
function onComplete_AdminReviewOption(ajaxContext) {
    var jsonObject = eval(ajaxContext);
}
另外,别忘了包含
jquery.unobtrusive-ajax.js
。 如果要使用旧版内容,可以在web.config中设置以下内容:
<add key=\"UnobtrusiveJavaScriptEnabled\" value=\"false\" />
默认情况下,此变量设置为true。 我个人更喜欢使用标准链接:
@Html.ActionLink(
    Model.IsVisible ? \"Disable\" : \"Enable\",  // <-- this should probably be as a property directly in the view model, ex. Model.LinkText
    \"ToggleVisibility\", 
    \"Review\", 
    new { area = \"Admin\", id = Model.Id }, 
    new { id = \"myLink\" }
)
并在单独的javascript文件中使用jQuery对其进行AJAXify:
$(function() {
    $(\'#myLink\').click(function() {
        $.post(this.href, function(result) {
            // result is already a javascript object, no need to eval
        });
        return false;
    });
});
    

要回复问题请先登录注册