【发布时间】:2011-09-07 21:49:11
【问题描述】:
所以我有一个使用 jQuery AJAX 调用方法的 ASP.NET 用户控件。这是 jQuery:
$.ajax({
type: 'POST',
url: 'Default.aspx/AdvertClick',
data: '{"name":"test"}',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(result) {
//do something
}
});
因为需要调用静态web方法,所以我在Default.aspx页面中有AdvertClick方法:
[WebMethod()]
public static string AdvertClick(string name)
{
return "";
}
在我的 AdvertClick 方法中,我接受了一个字符串值。我的用户控件中有很多数据和方法,我需要访问这些数据和方法才能使用该字符串值执行某些操作。但是因为我页面中的方法是静态的,所以如果不创建控件的新实例,我就无法从用户控件中访问任何内容。
有什么方法可以访问用户控制方法吗?我应该尝试不同的 AJAX 技术吗?我讨厌我必须在页面上调用一个方法,然后该方法需要从我的控件中访问数据。
【问题讨论】:
-
听起来您需要重新考虑您的设计。 web 方法不应该需要关心页面上的东西,它应该能够仅根据参数(即字符串名称)做出决定。考虑将更多信息传递给网络方法,或使用更新面板。
-
我同意 RPM1984。尽管看到您从使用 JQuery for AJAX 转向更新面板,我会感到非常难过。