我在c#中有asp.net网站。
在Dropdownlist Onchange()
事件中,我正在调用此jquery函数,该函数抛出:
function error(){[native code]}
<script type="text/javascript">
function GetDescription(a) {
alert(a); // the dropdown item selected value
var id = (!isNaN($(a).val())) ? parseInt($(a).val()) : 0;
$.ajax({
type: 'POST',
contentType: "application/json; charset-8;",
url: 'WT.aspx/GetRef',
data: "{ 'id':'" + id + "'}",
success: function (data) {
alert(data);
},
error: function (data) {
alert(Error);
}
});
}
</script>
WT.aspx / GetRef
[WebMethod] public string GetRef(int id) { DataTable dt = new DataTable(); SqlParameter[] p = new SqlParameter[1]; p[0] = new SqlParameter("@RefID", id); dt = dl.GetDataWithParameters("Sp_WT_GetRef", p); string data = dt.Rows[0]["Description"].ToString() +"|"+ dt.Rows[0]["PriceInUSD"].ToString(); return data; }
http://localhost:54576/resources/demos/style.css无法加载 资源:服务器响应状态为404(未找到) http://localhost:54576/AutomobileWebApp/WT.aspx/GetRef无法加载 resource:服务器响应状态为500(Internal Server 错误)http://localhost:54576/resources/demos/style.css无法加载 资源:服务器响应状态为404(未找到)
答案 0 :(得分:1)
我的第一个建议是将属于[WebMethod]的方法设为静态。
[WebMethod]
public static string GetRef(int id)
{
DataTable dt = new DataTable();
SqlParameter[] p = new SqlParameter[1];
p[0] = new SqlParameter("@RefID", id);
dt = dl.GetDataWithParameters("Sp_WT_GetRef", p);
string data = dt.Rows[0]["Description"].ToString() +"|"+ dt.Rows[0]["PriceInUSD"].ToString();
return data;
}
如果没有问题,请尝试检查您的ajax网址是否正确指向该方法。
url: 'WT.aspx/GetRef',
并检查是否传递'this'作为GetDescription(a)的函数参数。
<select onchange="GetDescription(this)">
<option value="1">text1</option>
<option value="2">text2</option>
<option value="3">text3</option>
</select>