2011-09-26 192 views
0

我有一個Ajax調用我的控制器操作是這樣的:Ajax請求返回值

var m = $.ajax({ 
     mtype: "GET", 
     url: '@Url.Action("GetBrandForValidation")', 
     data: { actionparameter: value }, 
     async: false, 
     cache: false 
}); 

就像你看到的我回到actionparametter我的控制器和控制器都返回true或false,這必須是我的「米」價值,但我無法得到它的工作。有任何想法嗎?

控制器代碼:

public virtual JsonResult GetBrandForValidation(string actionparameter) 
{ 
    var vendorId = _service.GetVendorIdByUsername(GetUserName()); 
    bool k; 
    var brands = _service.GetBrandsByVendor(vendorId); 
    var brand = new BrandsViewModel(); 
    brand.BrandName = "Opret ny Brand..."; 
    brands.Add(brand); 

    foreach (var brandsViewModel in brands) 
    { 
     if (brandsViewModel.BrandName == "Intet") 
     { 
      brandsViewModel.BrandName = ""; 
     } 
    } 

    var list = brands.Select(s => s.BrandName); 
    if (list.Contains(actionparameter)) 
    { 
     k = true; 
    } 
    else 
     k = false; 

    return Json(k,JsonRequestBehavior.AllowGet); 
} 

和全功能代碼:

var checkBrands = function(value, colname) { 
    var m = $.ajax({ 
       mtype: "GET", 
       url: '@Url.Action("GetBrandForValidation")', 
       data: { actionparameter: value }, 
       async: false, 
       cache: false 

    }); 
    if (m == true) 
     return [true, ""]; 
    else 
     return [false, "Brand eksistere ikke"]; 
}; 

林相當新的JavaScript的非常awfull,所以不要判斷硬

+0

[Ajax中的第一個不只是裝飾。 :)](http://www.pluralsight-training.net/microsoft/players/PSODPlayer.aspx?author=scott-allen&name=mvc3-building-ajax&mode=live&clip=0&course=aspdotnet-mvc3-intro) – bzlm

+0

唯一的問題我可以看到的是,在ajax調用folowing丟失.. dataType:「json」, – Steve

+0

@bzim - 它不是Ajax,它的Sjax。請參閱'async:false'並歡迎瀏覽器UI鎖定的美妙世界。 – Quentin

回答

0

解決

var checkBrands = function (value, colname) { 

     var m = $.ajax({ 
      mtype: "type", 
      url: '@Url.Action("GetBrandForValidation")', 
      async: false, 
      cache: false, 
      data: { actionparameter: value } 

     }).responseText; 


     if (m == 'true'){ 
      return [true, ""]; 
     } 
     else return [false, "Brand eksistere ikke"]; 

    }; 
0

是Ajax調用被造JavaScript的?如果是這樣,mtype應該是type。

+0

沒有工作,如果我警告m返回值是Object對象 – Timsen

0
var checkBrands = function(value, colname) { 
$.ajax({ 
      mtype: "GET", 
      url: '@Url.Action("GetBrandForValidation")', 
      data: { actionparameter: value }, 
      async: false, 
      cache: false, 
      success: function(data){ 
       if(data == 'm'){ 
        //do something 
       }else{ 
        //do something 
       } 

      } 
}); 

};