我正在尝试使用_doPostBack()将参数从JQuery传递给C#,但由于某种原因,我无法捕获实际参数。
我的JQuery如下: -
function SearchText() {
$("#persons").autocomplete({
source: function (request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "JQAutoComplete2.aspx/FetchPersons",
data: "{'name':'" + document.getElementById('persons').value + "'}",
dataType: "json",
success: function (data) {
response(data.d);
var val = document.getElementById('persons').value;
_doPostBack('UpdatePanel1', val);
},
error: function (result) {
alert("Error");
}
});
},
messages: {
noResults: '', results: function () {
}
}
});
}
我的代码隐藏如下: -
protected void UpdatePanel1_Load(object sender, EventArgs e)
{
var value = Request.Params["__EVENTARGUMENT"];
RadGrid1.DataSource = ctx.GetDataFromXML(false, 0);
RadGrid1.DataBind();
}
虽然调用了此方法,但val不会传递给方法,并且EventArgument仍为“”。
我尝试了Request.Forms [“_ EVENTARGUMENT”],还请求[“ _EVENTARGUMENT”],但我仍然得到一个空字符串。
感谢您的帮助和时间
答案 0 :(得分:0)
在客户端:
__ doPostBack('id','value');
如上所述=> 两个下划线
在服务器端:
Request["__EVENTARGUMENT"]
此处还有两个下划线
你写过你已经尝试过已经请求[“_ EVENTARGUMENT”] =>但你没有使用两个下划线!