2014-04-17 3 views
2

먼저 몇 가지 세부 사항을 묻는 페이지가 있고 그 아래 div에 부분 뷰가 반환됩니다.MVC Ajax가 부분 뷰를 반환하지만 표시되지 않습니다.

이 내 아약스 (나는 그것을 테스트하기 때문에 세부 따라 컨트롤러로 이동 및 전달되고있다)이다

public PartialViewResult FilterTransaction(string StartD, string EndD, string ItemName) 
    { 
     try 
     { 
      int productid = new ProductService.ProductsServiceClient().GetProductID(ItemName); 
      Product p = new ProductService.ProductsServiceClient().GetProduct(productid); 
      ViewBag.ItemNo = productid; 
      ViewBag.ItemName = p.Name; 
      ViewBag.AmmountP = p.Price; 
      int orderid = new OrderService.OrderServiceClient().GetOrderID(productid, User.Identity.Name); 
      Order o = new OrderService.OrderServiceClient().GetOrder(orderid); 
      ViewBag.DatePurchased = o.Date; 
      ViewBag.WarrantyExpiryDate = o.Date.AddYears(2); 

      DateTime fromd = Convert.ToDateTime(StartD); 
      DateTime todate = Convert.ToDateTime(EndD); 
      todate = todate.AddDays(1); 

      List<PrintViewFD> printv = new List<PrintViewFD>(); 
      foreach (FaultDetail fs in new FaultService.FaultServiceClient().GetListOfFaultDetailsbetweenDATES(orderid, productid, fromd, todate)) 
      { 
       PrintViewFD pvd = new PrintViewFD(); 
       pvd.date = fs.Date.ToString(); 
       pvd.details = fs.Details; 
       pvd.faultid = fs.FaultID; 
       FaultStatu fss = new FaultService.FaultServiceClient().GetStatus(fs.FaultStatusID); 
       pvd.status = fss.Status; 
       printv.Add(pvd); 
      } 

      ViewBag.FaultDetailsLIST = printv; 
      return PartialView("_filtertransactions"); 
     } 
     catch 
     { 
      return PartialView("_filtertransactions"); 
     } 
    } 
:

<script type="text/javascript"> 
function Filter() { 
    var startd = $('#startdt').val(); 
    var endd = $('#enddt').val(); 
    var itemname = $("#Products option:selected").val(); 

    var param = { StartD: startd, EndD: endd, ItemName: itemname }; 

    $.ajax({ 
     url: '@Url.Action("FilterTransaction")', 
     type: "POST", 
     datatype: "html", 
     UpdateTargetId: "divResult", 
     data: param, 
     error: function (xmlHttpRequest, errorText, thrownError) { 
      alert(xmlHttpRequest + "|" + errorText + "|" + thrownError); 
     }, 
     success: function (data) { 
      $('divResult').html(result); 
     } 
    }); 
} 
</script> 

이것은 (메소드와 변수가 모두 제대로 처리) 컨트롤러입니다

함수를 디버깅했으며 컨트롤러 메서드와 부분 뷰를 모두 입력합니다. 유일한 문제는 뷰에 부분 뷰가 표시되지 않는다는 것입니다. 나는 그것이 아약스와 관련이 있다고 생각한다!

<div id="divResult">test</div> 
+2

'$ ('divResult')를'->'$ ('# divResult ')' –

답변

2

아약스 호출의 성공 방법에 무슨 문제가있다 :

가 표시되어야 사업부입니다. 당신은 이런 식으로 뭔가를 시도 divResult에 "#divResult"로 변경하고 대신 '성공'의 HTML에 '데이터'를 추가해야합니다

$.ajax({ 
    url: '@Url.Action("FilterTransaction")', 
    type: "POST", 
    datatype: "html", 
    UpdateTargetId: "divResult", 
    data: param, 
    error: function (xmlHttpRequest, errorText, thrownError) { 
     alert(xmlHttpRequest + "|" + errorText + "|" + thrownError); 
    }, 
    success: function (data) { 
     $("#divResult").empty(); //In case you're going to refresh this multiple times 
     $("#divResult").html(data); 
    } 
}); 
+0

정말 고마워요. 그것은 효과가 있었다. – NetUser101

+0

@Vanessa 환영합니다. 다행입니다. – lopezbertoni

관련 문제