MicrosoftMvcAjax的异步调用回调函数(onFailure、onSuccess)研究

本文详细介绍了在ASP.NET MVC中使用Ajax.ActionLink进行异步请求的方法,并解释了如何通过onSuccess和onFailure回调函数处理服务器响应。同时展示了如何利用ajaxContext获取服务器返回的数据及响应类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由Ajax.ActionLink产生的html代码(mvc示例:ContantManager)如下:

代码
<a groupid="23" href="/Contact/Index/23" onclick="Sys.Mvc.AsyncHyperlink.handleClick(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, updateTargetId: 'divContactList1', onBegin: Function.createDelegate(this, beginContactList), onFailure: Function.createDelegate(this, failureContactList), onSuccess: Function.createDelegate(this, successContactList) });"> private string </a>

 

当点击此链接,服务器执行成功调用onSuccess回调函数,执行失败调用onFailure回调函数。

 

onSuccess函数与onFailure函数的原型如下:

ajaxOptions.onSuccess(ajaxContext);

ajaxOptions.onFailure(ajaxContext);

这两个函数都有一个参数ajaxContext。

 

参数ajaxContext用法说明:

  • 显示服务器返回内容: alert(ajaxContext.get_data());
  • 服务器返回内容类型:alert(ajaxContext.get_response().getResponseHeader('Content-Type'));

参数ajaxContext代码如下:

文件MicrosoftMvcAjax.debug.js第33行

代码
//////////////////////////////////////////////////////////////////////////////// // Sys.Mvc.AjaxContext Sys.Mvc.AjaxContext = function Sys_Mvc_AjaxContext(request, updateTarget, loadingElement, insertionMode) { /// <param name="request" type="Sys.Net.WebRequest"> /// </param> /// <param name="updateTarget" type="Object" domElement="true"> /// </param> /// <param name="loadingElement" type="Object" domElement="true"> /// </param> /// <param name="insertionMode" type="Sys.Mvc.InsertionMode"> /// </param> /// <field name="_insertionMode" type="Sys.Mvc.InsertionMode"> /// </field> /// <field name="_loadingElement" type="Object" domElement="true"> /// </field> /// <field name="_response" type="Sys.Net.WebRequestExecutor"> /// </field> /// <field name="_request" type="Sys.Net.WebRequest"> /// </field> /// <field name="_updateTarget" type="Object" domElement="true"> /// </field> this._request = request; this._updateTarget = updateTarget; this._loadingElement = loadingElement; this._insertionMode = insertionMode; } Sys.Mvc.AjaxContext.prototype = { _insertionMode: 0, _loadingElement: null, _response: null, _request: null, _updateTarget: null, get_data: function Sys_Mvc_AjaxContext$get_data() { /// <value type="String"></value> if (this._response) { return this._response.get_responseData(); } else { return null; } }, get_insertionMode: function Sys_Mvc_AjaxContext$get_insertionMode() { /// <value type="Sys.Mvc.InsertionMode"></value> return this._insertionMode; }, get_loadingElement: function Sys_Mvc_AjaxContext$get_loadingElement() { /// <value type="Object" domElement="true"></value> return this._loadingElement; }, get_response: function Sys_Mvc_AjaxContext$get_response() { /// <value type="Sys.Net.WebRequestExecutor"></value> return this._response; }, set_response: function Sys_Mvc_AjaxContext$set_response(value) { /// <value type="Sys.Net.WebRequestExecutor"></value> this._response = value; return value; }, get_request: function Sys_Mvc_AjaxContext$get_request() { /// <value type="Sys.Net.WebRequest"></value> return this._request; }, get_updateTarget: function Sys_Mvc_AjaxContext$get_updateTarget() { /// <value type="Object" domElement="true"></value> return this._updateTarget; } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值