2017-06-05 7 views
0

元のページを(再)AJAXと仮定しているフォームにキャンセルボタンがあります...問題は、データなしでページを空に戻すことです。私は何が間違っているのか分かりません。このようなAjax getメソッドは空のモデルを返します

[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メソッドが期待されるパラメータの命名と何の間の不一致に通常あり得ている:これは私のコントローラである

$("#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); 
        } 
       }); 
       }); 

: これは私のコードですあなたの意見から抜け出しました。あなたのケースでは

、あなたの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})

あなたのメソッドのシグネチャでデフォルト値を持っているので、省略することができます「ID」

+0

感謝10億!今それは完璧に動作します! – BYG

+0

確かに、その場合はこれを答えとして記入してください。 – Steveland83

関連する問題