Javascript 如何使用ajax在aspx.cs文件中激发方法
我想在PersonalDetails.aspx.cs页面上使用Ajax调用一个方法。我已经尝试使用下面的代码来创建它。但它不起作用。 我只想启动PersonalDetails.aspx.cs中包含的方法我该怎么做?:) 谁能帮帮我吗Javascript 如何使用ajax在aspx.cs文件中激发方法,javascript,asp.net,ajax,web-services,jquery,Javascript,Asp.net,Ajax,Web Services,Jquery,我想在PersonalDetails.aspx.cs页面上使用Ajax调用一个方法。我已经尝试使用下面的代码来创建它。但它不起作用。 我只想启动PersonalDetails.aspx.cs中包含的方法我该怎么做?:) 谁能帮帮我吗 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"> </script> <s
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js">
</script>
<script type="text/javascript">
$(document).ready(function () {
$("input").keydown(function () {
$("input").css("background-color", "yellow");
});
$("input").keyup(function () {
$("input").css("background-color", "pink");
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "PersonalDetails.aspx/GetFarmersByName",
data: { name: +request.term },
dataType: "json",
async: true,
dataFilter: function (data) { return data; },
success: function (data) {
return data;
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
alert(errorThrown);
}
});
});
});
</script>
$(文档).ready(函数(){
$(“输入”).keydown(函数(){
$(“输入”).css(“背景色”、“黄色”);
});
$(“输入”).keyup(函数(){
$(“输入”).css(“背景色”、“粉色”);
$.ajax({
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
url:“PersonalDetails.aspx/GetFarmersByName”,
数据:{name:+request.term},
数据类型:“json”,
async:true,
dataFilter:函数(数据){返回数据;},
成功:功能(数据){
返回数据;
},
错误:函数(XMLHttpRequest、textStatus、errorshown){
警报(文本状态);
警报(错误抛出);
}
});
});
});
这是我想用的方法
[WebMethod]
[ScriptMethod]
public bool GetFarmersByName(string name)
{
_personalData = new personalData();
int cky = 45;
CdMa cdMas = new CdMa();
cdMas = _personalData.getcdMasByConcdCd2(cky, "AdrPreFix", true);
int prefixKy = cdMas.CdKy;
List<FMISPersonalDataViewByName_Result> list = new List<FMISPersonalDataViewByName_Result>();
list = _personalData.GetPersonalDataByName(prefixKy, cky, name);
if (list != null)
{
grvPersonalData.DataSource = list;
grvPersonalData.DataBind();
return true;
}
return false;
}
[WebMethod]
[脚本方法]
public bool GetFarmersByName(字符串名称)
{
_personalData=新的personalData();
int-cky=45;
CdMa cdMas=新的CdMa();
cdMas=_personalData.getcdmasbyconcdcdd2(cky,“adrprix”,true);
int prefixKy=cdMas.CdKy;
列表=新列表();
list=\u personalData.GetPersonalDataByName(前缀为ky、cky、name);
如果(列表!=null)
{
grvPersonalData.DataSource=列表;
grvPersonalData.DataBind();
返回true;
}
返回false;
}
请将您的方法GetFarmersByName设置为公共静态bool GetFarmersByName,并尝试调试代码
并改变如下
数据:{name:+request.term+“}”
[WebMethod]
[ScriptMethod]
public bool GetFarmersByName(string name)
这个方法必须是公共静态方法,如果您想通过ajax调用它,它将返回一些数据
像
Aarif Qureshi答案应为公认答案 如果您运行正在运行的内容,很可能会收到“{”消息”:“无效的JSON原语:…”?看起来您的数据对象的格式不正确,它应该是数据:“{…}”或数据:JSON.stringify({…})
(顺便说一句,这也是不正确的-已经指出了)您缺少1)静态关键字2)jquery数据属性不是格式良好的数据:“{'name':'”+request.term+“}”当我放置static时,它显示了一个名为“非静态字段方法或属性所需的对象引用…”的错误,并加亮显示grvPersonalData“。在进行AJAX调用时,您将无法从代码背后绑定数据网格。此外,您将无法在静态方法中使用非静态字段。您可以发布完整的aspx源代码吗?当我放置静态时,它会显示一个名为“非静态字段方法或属性所需的对象引用”的错误,并突出显示“grvPersonalData”。
[WebMethod]
[ScriptMethod]
public static bool GetFarmersByName(string name)