Asp.net 如何在所有.NET框架中获得一致的AJAX响应?

Asp.net 如何在所有.NET框架中获得一致的AJAX响应?,asp.net,ajax,asp.net-3.5,Asp.net,Ajax,Asp.net 3.5,从ASP.NET 3.5开始,来自ASP.NET Web服务的所有AJAX响应都包含在d对象中 所有ASMX服务都是通过JSON序列化的 ASP.NET 3.5中的ASP.NET AJAX扩展。即使你只是回来 结果的标量返回值,如字符串、int或布尔值 将始终包含在“d”中 因此,对于3.5版本之前的应用程序,您应该执行以下操作: success(data) { var value = data; } 使用3.5+时,您必须执行以下操作: success(data) { var

从ASP.NET 3.5开始,来自ASP.NET Web服务的所有AJAX响应都包含在
d
对象中

所有ASMX服务都是通过JSON序列化的 ASP.NET 3.5中的ASP.NET AJAX扩展。即使你只是回来 结果的标量返回值,如字符串、int或布尔值 将始终包含在“d”中

因此,对于3.5版本之前的应用程序,您应该执行以下操作:

success(data)
{
   var value = data;
}
使用3.5+时,您必须执行以下操作:

success(data)
{
   var value = data.d;
}
我有一个在3.5版和3.5版之前运行的应用程序

如何使这些应用程序的代码保持一致


此外,这将非常有用,这样我就不必在升级3.5版之前的应用程序时更改其代码。

您可以使用一些辅助功能:

function GiveMeMyDamnData(data){
   if(data.d)
      return data.d;
   return data;
}
然后

success(data)
{
   var value = GiveMeMyDamnData(data);
}

…只需要确保在AJAX响应中从不使用“d”属性(否则会让人困惑!

+1我喜欢这样,但记住不要一直使用
d
可能会很昂贵。如果鞋子没有缝在我的脚上,我会忘记鞋子的:S@Curt:如果您需要明确避免使用
d
,那么您就不应该让代码正常工作。
d
不是任何属性的合适名称……永远;)@Curt我更关心的是为什么你的鞋子缝在你的脚上。