2011-07-12 18 views
1

私はasp.net MVC 3viewでjQuery ajaxコール、リンククリックでhtml.actionlinkを持っています。私のアクションメソッドでは、私はこの考えてみます。

if (a == 2) //return ok 
       return Json(new { Error = "false", Message = "Everything ok" }, JsonRequestBehavior.AllowGet); 
      else 
       return Content(""); 

Ajax呼び出しを次のとおりです。それ以外の場合は

$(function() { 
    $('#checkExists').click(function() { 
     $.ajax({ 
      url: $('#checkExists').attr('href'), 
      global: true, 
      type: 'GET',   
      timeout: 5000, 
      success: function (data) { //invoke when receive response from server        

       if (data != null && data.Error != '') //return failed 
       { 
        alert(data.Error); 
       } 
//    else { 
//     alert('error occurs 1'); 
//     //action ok here 
//    } 
      }, 
      error: function (xhr, ajaxOptions, thrownError) { 
       alert(xhr + ajaxOptions + "Cannot connect to server to load data"); //sever is not available     
      }, 
      complete: function() { //ajax done 
       //alert('complete'); 
      } 
     }); 
     return false; 
    }); 

、AJAXは、私はどのように私は$アヤックスコールを停止することができ、呼ばれますか?

答えて

0

はすでに

何を行うことができますdoNothing応答

if (a == 2) //return ok 
       return Json(new { Error = "false", Message = "Everything ok" }, JsonRequestBehavior.AllowGet); 
      else 
       return Json(new { Message = "do nothing" }, JsonRequestBehavior.AllowGet); 

を送信し、AJAXの成功コールバック

にされて、あなたの現在のシナリオでそれを元に戻すことができます方法はありませんAJAX呼び出しを行っています
success:function(data){ 
if(data.Message==='do nothing'){ 
// simply do nothing 
} 
} 

jsutこの記事では、インスタンス化する前にajax呼び出しをキャンセルすることができますので、このSOの回答Abort Ajax requests using jQuery

更新

if (a == 2) //return ok 
       return Json(new { Error = "false", Message = "Everything ok" }, JsonRequestBehavior.AllowGet); 
      else 
       return Content(""); 

と成功コールバックで

success:function(data){ 
if(!data.Message) 
//alert(data); //content will be shown 
} 
+0

私はコンテンツを表示する必要があり、json – DotnetSparrow

+0

ではないコンテンツを表示する必要があります。コンテンツを表示できるajaxコールバックのエラー/問題は何ですか... – Rafay

+0

elseの場合は未定義の警告が表示されます。私はこの警告が欲しくない – DotnetSparrow

0

AJAXコールを停止するとどういう意味ですか?すでにAJAXコールを送信していて、コントローラのアクションに当たっています。 JSONまたはプレーンテキストを返したのはこのコントローラアクションです。しかし、この段階ではすでに完了していることをやめるのは遅すぎます。誰かを死から戻そうとしているのは私のことです。

+0

私は2つのアクションメソッドを作成する必要がありますか? – DotnetSparrow

+0

@DotnetSparrow、分かりません。あなたがしようとしていることに依存します。 2つのアクションを作成すると、最初にAJAXで呼び出され、JSONが返されますが、2つ目のアクションは標準のビューまたはコンテンツを返す通常のActionLinkである可能性があります。 –