我希望从代码隐藏获得货币价值,然后我用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
显示购买率货币。如何解决这个问题?有什么想法吗?
答案 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"