0

[これはばかげた質問のように思えるかもしれませんが、迷っています。]

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)+"};"; 
     }
}

前もって感謝します。

4

1 に答える 1

1

したがって、最初に行う必要があるのは、boolvalue という変数にブール値を格納し、値を取得したら callservice 関数を呼び出すことです。たとえば、次のようになります。

  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
    });
};

サービスから送受信するデータのタイプに応じて、dataType および dataType フィールドを変更します。詳細情報が必要な場合は、これを調べてください: http://api.jquery.com/jQuery.ajax/

これがうまくいくかどうか教えてください。

于 2012-11-14T15:53:07.660 に答える