2010-08-03 65 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方法和頁面上的控件調用它。這項工作可以在課堂上完成,所以兩者都可以訪問它。

控制器究竟做了什麼?