我目前有一个ajax自定义控件,可以调用Web服务作为其功能的一部分。我需要传递哪个Web服务作为参数调用控件。目前,我在.vb文件中使用字符串参数并将其传递给javascript。我通过将一行作为字符串构建,然后在其上使用eval()来执行对Web服务的调用。
从here,我可以看出eval很糟糕。就像该页面上的函数调用一样,有什么办法可以将Web服务用作我可以调用的东西吗?
注意,我正在从Web服务调用方法。它不是stringservice(参数),而是stringservice.start(参数)。我只是得到字符串没有start方法的错误。
任何解决方案,还是我使用eval?谢谢:))
答案 0 :(得分:1)
如果您的字符串采用JSON格式,则可以使用JSON.parse
答案 1 :(得分:1)
您也可以使用bracket syntax访问全局对象的属性:
window[this.WebService](this.ProcessID, this.ProcessName, params);
但是,我建议将可用功能捆绑在webservices的对象中,例如
var webservices = {
a: function(id, name, params) { ... },
b: function(id, name, params) { ... },
...
};
...
webservices[this.WebService](this.ProcessID, this.ProcessName, params);