2012-11-14 45 views
0

[我意識到這似乎是一個愚蠢的問題,但我迷路了。]從JavaScript發送一個簡單的布爾值,AC#Web服務

使用一把umbraco 4.9我有,我已經做出了一個多語種網站事件處理程序將內容節點複製到所有語言,因爲它們在後臺創建爲所有語言。我現在試圖將它附加到一個自定義的上下文菜單項(umbraco.interfaces.IAction)以給創建者一個選擇。

在上下文菜單項中,只能將javascript函數作爲字符串調用。我不應該觸摸umbraco代碼本身,所以如何將值傳遞給Web服務?我在哪裏包括參考?

這是我的時刻:提前

public string JsSource 
{ 
    get 
    { 
     return "function AddItem(){" + 
       "var multiLang = confirm('Create for all languages?');" + 
        //"$.ajax({" + 
        //"type: 'Post'," + 
        //"url: 'TryAgain.aspx/' + SendMultiVal" + 
        //"data: multiLang})" + 
        //"PageMethods.SendMulti(multiLang);}" + 
        string.Format("{0}.actionNew()", ClientTools.Scripts.GetAppActions)+"};"; 
    } 
} 

感謝。

+0

通常情況下,這是通過使用稱爲AJAX的技術完成的 - 您是否看過該術語? – Hogan

+0

@霍根是的,我有。我似乎無法找到如何提供參考。 javascript函數作爲字符串返回,因此我不直接將其寫入頁面腳本文件。 –

+0

通過寫入頁面腳本文件,AJAX不起作用。請閱讀關於AJAX並做一些例子或張貼你認爲應該工作但沒有的代碼。現在你的問題聽起來像是「爲我而做」,這不會在這個網站上走得太遠--PPL很容易忽略這些類型的問題。 – Hogan

回答

1

所以,你需要做的第一件事是到存儲在一個變量稱爲boolvalue布爾值,然後調用callservice功能,一旦你有value.For如:

CallService("POST", "YourServiceUrl",boolvalue, 
     function (data) { 
      alert("Service Call Success"); 
     }, 
     function (result) { 
      alert('Service call failed: ' + result.status + '' + result.statusText); 
     }); 

這將使服務調用並從服務獲取數據,如果它返回一些數據。

CallService = function (method, serviceUrl, value, successHandler, errorHandler) { 
    $.ajax({ 
     type: method, 
     url: serviceUrl, 
     contentType: "application/text; charset=utf-8", 
     dataType: "json", 
     data:JSON.stringify(value), 
     success: successHandler, 
     error: errorHandler 
    }); 
}; 

修改取決於您發送和從服務接收數據的類型,具體的數據類型和數據類型的字段。 看這個,如果你需要了解更多信息: http://api.jquery.com/jQuery.ajax/

讓我知道這是否爲你。

+0

我想讓它工作,但是umbraco正在做我的頭。如果我得到它,我會回到你身邊。謝謝! –

+0

這個例子是使用jQuery--在問題中沒有指定。 – Hogan

+0

當我介紹Ajax時函數將不會調用。 (沒有它,我可以打電話給一個簡單的確認或提醒) –