2011-03-16 4 views
0

이 문제에 대한 좋은 해결책을 찾을 수 없어서 som help가 필요합니다.asp.net pagemethod 호출, jquery를 사용하여 오류 상태를 반환합니다. 500

jquery로 호출해야하는 PageMethod가 있습니다.

<script type="text/javascript"> 
    $(function() { 
     $("#MainContent_ddl_antal").change(function() { 
      var selectedvalue = $(this).val(); 
      //alert(selectedvalue); 
      $.ajax({ 
       type: "POST", 
       url: "betaling.aspx/GetTotPrice", 
       data: "{'antal':" + selectedvalue + "}", 

       //data: JSON.stringify({ antal: selectedvalue }), 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (msg) { 
        // Set label text to method's return. 
        alert(msg.d); 
        $('#<%= lbl_totpris.ClientID %>').html(msg.d); 
       }, 
       error: function (error) { 
        alert(error.status); 
       } 
      }); 

     }); 
    }); 

</script> 

및 코드 숨김 PageMethod은 다음과 같습니다 : 클라이언트 코드는 다음과 같습니다

[WebMethod] 
public static double GetTotPrice(int antal) 
{ 
    double totpris = 0; 
    Product _product = Product.GetProductByDate(DateTime.Today); 

    if (_product != null) 
    { 
     totpris = _product.ProductNuPris * antal; 
    } 
    return totpris; 
} 

호출은 내가 이것에 대한 이유를 볼 수없는 오류 (500)를 반환합니다.

+0

디버거에서 webmethod를 실행하여 호출 중인지 확인하고 값을 반환하고 있습니까? – Geoff

+0

디버깅을 시도하셨습니까? 어쩌면'antal'의 전달 된 값은 정수가 아닙니다. – TheVillageIdiot

답변

0

여기에 오는 것을 확인하십시오 : var selectedvalue = $(this).val(); 이것이 정수 값을 반환하지 않는다고 생각하십시오. 나는 다음과 같은 목록 코드를 시도하고 그것을 잘 작동합니다 :

<select id="testList"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
</select> 

[WebMethod] 
public static double GetTotPrice(int antal) 
{ 
    return 5.0 * antal; 
} 

을 선택 목록에서 값이 다음이 줄을 일으킬 수있는 문제가 올바른 경우 :

Product _product = Product.GetProductByDate(DateTime.Today); 

한 번 debuging 비주얼 사용하여 보시기 바랍니다가 스튜디오 및 FireBug (Firefox).

+0

나는 경고 된 var selectedvalue = $ (this) .val();을 시도하고 DDL에서 내가 선택한 숫자를 씁니다. "Product _product = Product.GetProductByDate (DateTime.Today); "을 주석 처리하고 하드 코드 된 숫자를 사용하더라도 오류가 발생합니다. 이제 경고 작성 (errorThrown)을 시도했습니다. 그리고 그것은 나에게 [object XMLHttpRequest] 오류를 준다. 매개 변수를 PageMethod에 올바르게 전달합니까? 시험에서이 방법을 어떻게 부르셨습니까? – Soeren

+0

@Soeren 간단히 드롭 다운에서 vlaue를 변경했습니다. 웹 메소드에 중단 점을 넣고 디버깅 해보십시오. – TheVillageIdiot