2010-08-03 63 views
1

所以我有一个ASP.NET用户控件使用jQuery AJAX来调用方法。这里是jQuery的:从静态页面方法获取用户控制方法和属性

$.ajax({ 
    type: 'POST', 
    url: 'Default.aspx/AdvertClick', 
    data: '{"name":"test"}', 
    contentType: 'application/json; charset=utf-8', 
    dataType: 'json', 
    success: function(result) { 
     //do something 
    } 
}); 

,因为它需要调用静态网页的方法,我在Default.aspx页的AdvertClick方法:

[WebMethod()] 
public static string AdvertClick(string name) 
{ 
    return ""; 
} 

在我AdvertClick方法,我在服用一个字符串值。我需要访问我的用户控件中的大量数据和方法才能使用该字符串值进行操作。但是因为我的页面中的方法是静态的,所以我无法访问我的用户控件中的任何内容,而无需创建控件的新实例。

有什么办法可以访问用户控制方法吗?我应该尝试一种不同的AJAX技术吗?我讨厌我必须在页面上调用一个方法,然后需要从我的控件中访问数据。

+1

听起来像你需要重新考虑你的设计。 web方法不需要关心页面上的事情,它应该能够仅基于参数(即字符串名称)做出决定。考虑将更多信息传递给Web方法或使用更新面板。 – RPM1984 2010-08-03 02:06:30

+0

我同意RPM1984。尽管看到你从使用AJAX的JQuery转移到更新面板,我会非常难过。 – 2010-08-03 02:38:26

回答

0

将您的静态方法AdvertClick代码移到一个类中,然后从您的Web方法和页面上的控件调用它。这项工作可以在课堂上完成,所以两者都可以访问它。

控制器究竟做了什么?