我似乎无法使用jquery引用DOM中的项目。
如何在OnBegin / OnSuccess事件期间显示/隐藏元素?
如何添加/删除css类?
答案 0 :(得分:2)
你可能会使用类似的东西:
<% using(Ajax.BeginForm("UpdateForm", new AjaxOptions{ OnBegin = "showIt", OnSuccess = "hideIt" })) { %>
...
<% } %>
OnBegin
和OnSuccess
是全局可见的javascript函数的名称,这些函数将在受尊重的Ajax请求阶段调用。这些功能应该满足您的要求:
function showIt() {
// show and add a class on the same element
$("#SomeElementID").show().addClass("some-class");
}
function hideIt() {
// hide and remove class on the same element
$("#SomeElementID").hide().removeClass("some-class");
}
我不确定函数参数,因为:
HtmlHelper
扩展方法并编写执行Ajax请求和所有处理的自定义jQuery脚本;从我的观点来看,其中一个不好的部分是那些全球功能,如果没有明确需要,通常可以更好地避免;我还怀疑少数少数人以这种方式使用Asp.net MVC Ajax应用程序,他们通常使用HtmlHelper
扩展并使用jQuery手动控制Ajax处理。不是使用全局函数,你可以编写内联的匿名函数(这不好,因为所有内容都作为一个字符串填入单行但可能有效):
... OnBegin = "function() { $(\"#SomeElementID\").show().addClass(\"some-class\"); }" ...
告诉我它是否有效。
答案 1 :(得分:0)
隐藏某物:
$.ajax( //whatever
success: function() { $('.classToShow').show(); }
)
删除课程:
$.ajax( //whatever
success: function() { $('#hideSomething').removeClass('aClass'); }
//addClass to add
)
OnBegin?
你的意思是beforeSend
$.ajax( //whatever
beforeSend: function() { $('#hideSomething').removeClass('aClass'); }
//addClass to add
)
您确定引用了jquery而不是msajax吗?