Asp.net 如何在所有.NET框架中获得一致的AJAX响应?
从ASP.NET 3.5开始,来自ASP.NET Web服务的所有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
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我更关心的是为什么你的鞋子缝在你的脚上。