Я внес некоторые изменения в свой тестовый веб-сайт 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.
Я надеюсь, что кто-нибудь найдет это.