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 回答