2017-06-05 220 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