我的方法如下:
<WebMethod()> _
Public Function Search(ByVal q As String) As String
从.net 2.0更新到3.5似乎打破了这一点。
我们对返回的值执行data.split(),并且生成错误 - 看起来返回的值现在是json结构,而不是简单的字符串。
有没有办法恢复到先前的行为?
答案 0 :(得分:0)
您必须导入System.Web.Script.Services
然后,尝试添加此属性:
<WebMethod()> _
<ScriptMethod(ResponseFormat:=ResponseFormat.Xml)> _
您是如何调用Web方法的?通过javascript?
答案 1 :(得分:0)
我们遇到了类似的问题。使用Webmethod和jquery ajax调用2.0的基本设置,它返回一个字符串(js中的类型字符串)或字符串数组(js中的类型对象),在3.5中它总是返回一个对象,返回的实际数据在.d时返回像字符串或字符串数组一样的原语。
到目前为止,我最好的解决方案是检查.d。
的javascript方法 function getResponse(r){
if(r.d!=null){
return r.d;
}else{
return r;
}
}
我必须同时支持2.0和3.5的过渡调用,而不必耗费太多精力,因为2.0很快就会消失。
但我宁愿找到更好的解决方案。