从ajax函数

时间:2015-08-13 14:13:02

标签: javascript c# jquery asp.net ajax

我希望从代码隐藏获得货币价值,然后我用ajax调用它,但我什么也没得到,只是显示错误,这里是代码

function js

  function showCRate2(obj) {
            var selectedCurrency = $('#<%=ddlPaymentCurrency.ClientID%>').val();
            console.log(selectedCurrency);
            if (selectedCurrency != null && selectedCurrency != "") {
                $.ajax({
                    type: "POST",
                    url: "TopUp.aspx/GetCRate",
                    data: '{id:"' + selectedCurrency + '"}',
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (response) {
                        var o = response.d;
                        $('#<%=hfCurrencyRate.ClientID%>').val(o.RateBuy);
                        $('#<%=hfCR.ClientID%>').val(o.RateBuy);
                    },
                    error: function (response) {
                        alert('error')
                    }
                });
            }
        }

这个函数在codebehind中,返回对象(后来我需要它的值为RateBuy attribut(十进制)

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static OLServiceReference.CurrRate getCurr(int id)
{
    var CR = client.GetCurrRates(id);
            return CR;
    }

和这些另一个相关的控制

<asp:DropDownList ID="ddlPaymentCurrency" CssClass="form-control" runat="server"   onChange="showCRate2()"></asp:DropDownList>
<input type="text" id="hfCurrencyRate" runat="server" class="form-control" placeholder="" style="width: 230px" readonly="readonly" />
<asp:HiddenField ID="hfCR" runat="server" /></div>

在调用showCRate2(obj)时发生错误警告(错误:函数(响应))。我希望表单hfCurrencyRate显示购买率货币。如何解决这个问题?有什么想法吗?

1 个答案:

答案 0 :(得分:1)

AJAX调用中的方法名称与后面代码中方法的名称不匹配:

url: "TopUp.aspx/GetCRate"

这需要将static ASP.NET AJAX页面方法命名为GetCRate,但你有这个:

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static OLServiceReference.CurrRate getCurr(int id)
{
    var CR = client.GetCurrRates(id);
    return CR;
}

将服务器端方法的名称更改为GetCRate或更改AJAX调用中的引用:

url: "TopUp.aspx/getCurr"