0

我目前有一个 ajax 自定义控件,它调用 Web 服务作为其功能的一部分。我需要将调用哪个 Web 服务作为参数传递给控件。目前,我在 .vb 文件中使用字符串参数并将其传递给 javascript。我通过将行构建为字符串,然后在其上使用 eval() 来执行对 Web 服务的调用。

这里,我可以看到 eval 很糟糕。就像该页面上的函数调用一样,有什么方法可以将 Web 服务用作我可以调用的东西?

请注意,我正在从 Web 服务调用方法。它不是 stringservice(parameters),而是 stringservice.start(parameters)。我只是得到字符串没有启动方法的错误。

有什么解决方案,还是我坚持使用 eval?谢谢 :)

4

2 回答 2

1

如果您的字符串是 JSON 格式,您可以使用JSON.parse

于 2012-07-23T13:58:20.897 回答
1

您也可以使用括号语法访问全局对象的属性:

window[this.WebService](this.ProcessID, this.ProcessName, params);

但是,我建议将可用功能捆绑在 Web 服务对象中,例如

var webservices = {
    a: function(id, name, params) { ... },
    b: function(id, name, params) { ... },
    ...
};

...

webservices[this.WebService](this.ProcessID, this.ProcessName, params);
于 2012-07-23T14:24:17.440 回答