2017-06-05 165 views
0

我有一個表單上的取消按鈕,以(重新)AJAX原始頁面...問題是,它發回的空頁面沒有任何數據。我無法弄清楚我做錯了什麼。 這是我的代碼:Ajax get方法返回空的模型

$("#cancel-price-button").click(function() { 
     $("#client-pricing-container").html("<h1 style='color:grey'>Loading...</h1>"); 
     $.ajax({ 
      type: "GET", 
      url: '@Url.Action("GetProjectPricing","Project",Model?.Project?.ProjectPricings)', 
      success: function(data) {$("#client-pricing-container").html(data); }, 
      error: function(data) { 
      $("#client-pricing-container").html("<h1 style='color:red'>Ajax Error!</h1>"); 
      console.log('An ajax error occurred.'); 
      console.log(data); 
        } 
       }); 
       }); 

這是我的控制器:

[HttpGet] 
     public ActionResult GetProjectPricing(string returnMessage,string returnClass,int?id=null) 
     { 
      if (id == null) 
      { 
       var pricingDetail = ProjectDataAccess.GetProjectDetails(null); 
       pricingDetail.Project = new Project(); 
       pricingDetail.ReturnMessage = returnMessage; 
       pricingDetail.ReturnClass = returnClass; 
       return PartialView("Partial/ClientPricing", pricingDetail); 
      } 
      var pricingDetails = ProjectDataAccess.GetProjectDetails(id.Value); 
      if (pricingDetails == null) return PartialView("Error"); 
      pricingDetails.ReturnMessage = returnMessage; 
      pricingDetails.ReturnClass = returnClass; 
      return PartialView("Partial/ClientPricing", pricingDetails); 

     } 

回答

0

這樣的問題通常是由於形狀或您的API方法需要的參數的命名和什麼之間的差異越來越從你的觀點傳下來。

在你的情況,你的API預計:

GetProjectPricing(string returnMessage, string returnClass, int? id=null)

你傳遞下列對象:

Model?.Project?.ProjectPricings

因此,假設你已經確保了對象(或其父母)不是null,您需要確保ProjectPricings的結構匹配預期的形狀並具有預期的屬性。如果不是(或者,如果你不積極它),試試這個:

@Url.Action("GetProjectPricing","Project", new { returnMessage = "some text2", returnClass = "someClass", id = 9})

「身份證」可以被排除在外,因爲你在你的方法的簽名有一個默認值

+0

謝謝十億!現在它完美的工作! – BYG

+0

當然,在這種情況下,請將此標記爲答案。 – Steveland83