MicrosoftMvcAjaxの非同期コールバック関数(onFailure,onSuccess)研究
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) {
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
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() {
//
/
if
(
this
._response) {
return
this
._response.get_responseData(); }
else
{
return
null
; } }, get_insertionMode:
function
Sys_Mvc_AjaxContext$get_insertionMode() {
//
/
return
this
._insertionMode; }, get_loadingElement:
function
Sys_Mvc_AjaxContext$get_loadingElement() {
//
/
return
this
._loadingElement; }, get_response:
function
Sys_Mvc_AjaxContext$get_response() {
//
/
return
this
._response; }, set_response:
function
Sys_Mvc_AjaxContext$set_response(value) {
//
/
this
._response
=
value;
return
value; }, get_request:
function
Sys_Mvc_AjaxContext$get_request() {
//
/
return
this
._request; }, get_updateTarget:
function
Sys_Mvc_AjaxContext$get_updateTarget() {
//
/
return
this
._updateTarget; } }
コード#コード#
<
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の使用方法説明:
パラメータajaxContextコードは以下の通りです.
ファイルMicrosoftMvcAjax.debug.js 33行目
コード#コード#
//
//////////////////////////////////////////////////////////////////////////////
//
Sys.Mvc.AjaxContext
Sys.Mvc.AjaxContext
=
function
Sys_Mvc_AjaxContext(request, updateTarget, loadingElement, insertionMode) {
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
//
/
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() {
//
/
if
(
this
._response) {
return
this
._response.get_responseData(); }
else
{
return
null
; } }, get_insertionMode:
function
Sys_Mvc_AjaxContext$get_insertionMode() {
//
/
return
this
._insertionMode; }, get_loadingElement:
function
Sys_Mvc_AjaxContext$get_loadingElement() {
//
/
return
this
._loadingElement; }, get_response:
function
Sys_Mvc_AjaxContext$get_response() {
//
/
return
this
._response; }, set_response:
function
Sys_Mvc_AjaxContext$set_response(value) {
//
/
this
._response
=
value;
return
value; }, get_request:
function
Sys_Mvc_AjaxContext$get_request() {
//
/
return
this
._request; }, get_updateTarget:
function
Sys_Mvc_AjaxContext$get_updateTarget() {
//
/
return
this
._updateTarget; } }