2011-03-09 59 views
0

我有一個棘手的問題。我處於需要使用JavaScript函數中.cs文件中定義的方法的情況。問題是我們正在使用.NET 1.1,AJAX不能用於應用程序。從Javascript使用服務器端方法沒有AJAX

此外,我將需要從JavaScript傳遞一個字符串到服務器端的方法。我正在實現JavaScript的頁面是.as任何想法?

我已經嘗試做一個回發並創建一個RaisePostBack事件處理程序方法(在.aspx頁面和.ascx用戶控件中),但沒有運氣。

如果有人能幫我解決問題,我們將不勝感激。

更確切地說,我有一個類Attachment.cs,它有一個方法Delete()。

javascript是從span的onclick事件中調用的。 javascript函數的輸入參數將是一個字符串,我需要用它來實例化一個附件。

我創建了一個方法,它使用一個字符串實例化一個附件併爲附件對象調用相應的Delete()方法。

現在,我需要將字符串從javascript函數傳遞給我創建的方法。我無法使用PageMethods。

JavaScript函數是這樣的: //文件ID是一個字符串

function DeleteAtt(fileID) 
{ 
    //I tried PageMethods here, tried posting the page and getting the value through 
    // a RaisePostBack event etc. No luck. 
} 

我創建的CS方法是這樣的:

public void DeleteAttachment(string ID) 
{ 
    Attachment obj = new Attachment(ID); 
    obj.Delete(); 
} 
+1

Ajax是「無需離開頁面即可從JS發出HTTP請求」的全部術語。除非離開頁面是一個選項,否則聽起來好像你在問Ajax如何做而不做Ajax。 – Quentin 2011-03-09 16:18:45

+0

@David。究竟。 PageMethods的另一種選擇是更精確。 – 2011-03-09 16:33:16

回答

1

你的意思是說微軟的「ASP AJAX」不是一個選項,還是你的意思是說任何jquery /任何其他庫,或者你自己親手寫的javascript ajax都不行?您的.net版本可能不支持ASP AJAX,但肯定簡單的JavaScript仍然可以工作,,因爲您想從javascript訪問該頁面。

如果是這樣的話,事情如此簡單,使用jQuery,將工作:

function submit() { 
    $.post(
     "pagename.aspx?string=" + variable, 
     function (data) { 
      alert("Response: " + data); 
    }); 
} 
+0

@Michael。 AJAX不是一種選擇。在使用AJAX和更高版本的.NET之前,出現了一些問題。 – 2011-03-09 16:29:55

+0

你能解釋一下嗎? Ajax不是一種不同的語言 - ajax只是實現純javascript的一種方式。在什麼情況下你可以使用javascript來發出請求,但是不能使用javascript來創建一個異步調用? – 2011-03-09 16:34:44

+0

@Michael。我非常理解,AJAX不是一種不同的語言,我之前使用過它。我正在從事的應用是從2005年開始生產(很久以前..)。我現在所做的就像是一種支持。從事該項目的團隊嘗試在應用程序上實現一些AJAX,並遇到一些其他功能無法正常工作的問題。所以這就是我被告知的:「NO AJAX ..」 – 2011-03-09 16:44:53

0

你可以注入一個隱藏式iFrame進入頁面, iframe的SRC可用於將數據傳回服務器。

這是jQuery和Prototype發明之前的一種非常古老的技術。

參見:http://www.ashleyit.com/rs/其他替代方案。

1

如何將一個回調URL作爲查詢字符串,你需要把數據提交網址?例如:

初始頁:(JavaScript的)

function send(){ 
    window.location = "submiturl.aspx?str=var& 
         callbackurl=http://www.myurl.com/page.aspx"; 
} 

submiturl。ASPX然後抓住這兩個查詢字符串[str][callbackurl],執行動作/函數,然後發送一個響應返回給[callbackurl]

response.redirect(callbackurl + "?response=" + data); 

初始頁面現在使用response.querystring,以確定它是否是成功的/你想和任何其他繼續商業。

這絕對不會使用ajax,並且絕不會是異步的,而是基於API /回調設計的相當漫長的歷史記錄。

相關問題