我的页面名称
public partial class AtamaGorevDegistir : System.Web.UI.Page
{}
我的webmethod ajax方
var path = getLocation(location.href);
$.ajax({
type: "POST",
url: path.pathname + "/KisiBilgiDoldur",
// data: "{" + str + "}",
contentType: "application/json; charset=utf-8",
// dataType: "json",
success: function (data) {
var dd = data.d;
$('.modal-dialog').css({ width: '85%' });
$('#AtamaModal').modal({ show: true });
}
});
我的网络方法
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string KisiBilgiDoldur(string KayitID, string TeklifID)
{
AtamaGorevDegistir atama = new AtamaGorevDegistir();
atama.AtananSuren.Value = "123";
return null;
}
但是我的问题我的控件是空的。但我可以访问此方法但没有设置值并给出错误消息。为什么会这样?
答案 0 :(得分:1)
WebMethod和ScriptMethod无法访问调用页面的控件集合。可以将其视为正常Web窗体生命周期之外的内容。当您使用AJAX时,您需要将所有数据传递到它需要的服务器端方法,并且您的服务器端应该返回客户端所需的所有数据。然后客户端应该获取返回的数据并根据需要操作DOM以显示结果。
在您的WebMethod中,返回数据而不是尝试将其分配给控件,删除return null;
。
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string KisiBilgiDoldur(string KayitID, string TeklifID)
{
return "123";
}
在客户端成功处理程序中,获取返回的数据并使用JavaScript设置控件的值。
var path = getLocation(location.href);
$.ajax({
type: "POST",
url: path.pathname + "/KisiBilgiDoldur",
// data: "{" + str + "}",
contentType: "application/json; charset=utf-8",
// dataType: "json",
success: function (data) {
var dd = data.d;
$('.modal-dialog').css({ width: '85%' });
$('#AtamaModal').modal({ show: true });
//set control value to data.d here
}
});
答案 1 :(得分:0)
您不能使用web方法设置控件值。您在浏览器中返回一个值并从api返回并执行某些操作。使用webmethods与webforms不同。您在网络方法中返回的值为空...您将该空值设置为' dd'在js,但你不做任何事情。当你从网络方法中获得价值时,你需要用它来做一些事情。尝试提醒(data.d)'在你的成功回调,看看我的意思。然后$('#elm')。text(data.d),如果你想在页面上。
答案 2 :(得分:0)
您应该为数据添加参数。
$.ajax({
type: "POST",
url: path.pathname + "/KisiBilgiDoldur",
data:JSON.stringify({ KayitID: '1', TeklifID:'2' }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
var dd = data.d;
$('.modal-dialog').css({ width: '85%' });
$('#AtamaModal').modal({ show: true });
}
});