ASP.NET MVC Ajax: ошибка с Ajax.Actionlink («b.apply» не является функцией в MicrosoftAjax.js) - PullRequest
1 голос
/ 26 марта 2010

Я внес некоторые изменения в свой тестовый веб-сайт ajax, и теперь мои ссылки Ajax.ActionLink больше не работают! Рассматриваемые ссылки ActionLink сделаны следующим образом:

<% = Ajax.ActionLink («Выбор языка», «LanguageScreen», «Home», from («LanguageScreen», «Функции»), meep («LanguageScreen», «Функции»))%> `

Функции «from» и «meep» представляют собой только один вкладыш следующим образом:

Function meep(ByVal act As String, ByVal cnt As String) As AjaxOptions  
    Return New AjaxOptions With {.UpdateTargetId = "Content", .OnSuccess = "Hash('" + act + "', '" + cnt + "')", .LoadingElementId = "Loader", .OnComplete = "HideLoader", .OnBegin = "EmptyContent('" + act + "', '" + cnt + "')"}  
End Function  
Function from(ByVal act As String, ByVal cnt As String)  
    Return New With {.fromAct = act, .fromCnt = cnt}  
End Function

Когда я нажимаю указанную кнопку, Hash () работает нормально

    function Hash(ghz, ghzz) {
        set_action(ghz);
        set_controller(ghzz);
        window.location.hash = "#" + ghz + "." + ghzz;
    }

EmptyContent также работает:

    function EmptyContent(ghz, ghzz) {
        document.getElementById("Loader").style.visibility = "visible";
        document.getElementById("main").style.backgroundColor = "#a0a0a0";
        document.body.style.backgroundColor = "#3c6792";
        return true;
    }

Но тогда процесс застревает где-то. HideLoader () не вызывается.

Это выданная ошибка, включая стек:

Uncaught exception:TypeError: 'b.apply' is not a function  
Error thrown at line 5, column 583 in <anonymous function: Function.createDelegate>() in http://ajax.sinni800.ath.cx/Scripts/MicrosoftAjax.js:return b.apply(a,arguments)  
called from line 15, column 1073 in <anonymous function: Sys.Mvc.MvcHelpers.$2>($p0, $p1, $p2, $p3, $p4) in http://ajax.sinni800.ath.cx/Scripts/MicrosoftMvcAjax.js:$7=$p4.onBegin($6)!==false;  
called from line 11, column 124 in <anonymous function: Sys.Mvc.AsyncHyperlink.handleClick>(anchor, evt, ajaxOptions) in http://ajax.sinni800.ath.cx/Scripts/MicrosoftMvcAjax.js:Sys.Mvc.MvcHelpers.$2(anchor.href,'post','',anchor,ajaxOptions);  
called from line 1, column 0 in <anonymous function>(event):Sys.Mvc.AsyncHyperlink.handleClick(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, loadingElementId: 'Loader', updateTargetId: 'Content', onBegin: Function.createDelegate(this, EmptyContent("Mine", "Home")), onComplete: Function.createDelegate(this, HideLoader()), onSuccess: Function.createDelegate(this, Hash("Mine", "Home")) });

Если хотите, пожалуйста, поищите на моем сайте, если найдете что-то подозрительное. Я уже посмотрел, определил ли я где-нибудь b, но ничего.

Это URL: http://ajax.sinni800.ath.cx/. Он слушает хэши, например: http://ajax.sinni800.ath.cx/#Mine.Home Это в формате Action.Controller. Еще один: # Mines.Home.

Я надеюсь, что кто-нибудь найдет это.

...