2015-10-20 131 views
0

我有一個AJAX調用MVC ActionResult在一個控制器,試圖返回一個BOOL。從Ajax調用返回布爾值MVC

我的Ajax調用:

function CheckForExistingTaxId() { 
    $.ajax({ 
     url: "/clients/hasDuplicateTaxId", 
     type: "GET", 
     contentType: "application/json; charset=utf-8", 
     datatype: "json", 
     data: JSON.stringify({ taxId: taxId }), 
    }); 
} 

我的方法:( 「客戶」 是默認路由前綴)

[HttpGet, Route("hasDuplicateTaxId")] 
    public ActionResult hasDuplicateTaxId(string taxId) 
    { 
     //if stuff 
      return Json(true, JsonRequestBehavior.AllowGet); 
     else 
      return Json(false, JsonRequestBehavior.AllowGet); 
    } 

我想基於Ajax調用的結果打開一個模態對話框:

if (CheckForExistingTaxId()) 
     DialogOpen(); 

第一個問題是,我得到一個404沒有找到客戶/ hasDuplicateTaxId。 我的路線有問題,或者我打電話的方式有問題嗎? 其次,我能否以這種方式返回布爾值,在打開對話框之前用ajax調用評估函數CheckForExistingTaxId()?

+0

的Ajax考慮的請求成功的,如果它得到的背部 「任何」 數據(因此一個空數組意味着它成功) ,檢查你的id是否存在,如果找到了,我會返回id。 然後在你的ajax成功:檢查你的數據是否有任何對象。如果這意味着它已經存在。 另一種選擇是,如果ID已經存在,並且如果它不返回空的json,則返回一個錯誤,這樣您就可以成功處理「OK」場景:並且錯誤複製場景: 但是回答你的404問題,這聽起來像你沒有打你的API,你可以分享你的路線設置? – Puzzle84

+0

所有路線都有「客戶」作爲前綴,不知道爲什麼我404'd – noclist

回答

3

基本上,如果想要使用JSON與HttpGet

[HttpGet, Route("hasDuplicateTaxId")] 
     public ActionResult hasDuplicateTaxId(string taxId) 
     { 
      // if 1 < 2 
      return 1 < 2 ? Json(new { success = true }, JsonRequestBehavior.AllowGet) 
         : Json(new { success = false, ex = "something was invalid" }, JsonRequestBehavior.AllowGet); 
     } 

AJAX:

function CheckForExistingTaxId() { 
    $.ajax({ 
     url: "/clients/hasDuplicateTaxId", 
     type: "GET", 
     contentType: "application/json; charset=utf-8", 
     datatype: "json", 
     data: JSON.stringify({ taxId: taxId }), 
     success: function (data) { 
      if (data.success) { 
       // server returns true 
      } else { 
       // server returns false 
       alert(data.ex); // alert error message 
      } 
     } 
    }); 
} 
+0

是這樣的。如果你有一個重複的話,你可以通過返回一個錯誤來增加這個錯誤,但這是你必須做的設計決定。 – Puzzle84

+0

@ Puzzle84我只是編輯我的答案,是不是你的意思? – 2015-10-20 19:30:42

+0

非常。我的意思是他可以使用錯誤:而不是檢查成功和失敗的成功:但這也適用。 – Puzzle84