如何从启用AJAX的WCF服务(ASP.Net)获取返回对象属性?

时间:2012-01-13 22:10:22

标签: ajax wcf json

我创建了一个支持AJAX的WCF服务来返回List<>我创建的自定义类。我可以让它返回数据,但我不知道如何访问我的类的属性值。

这是我的班级:

[Serializable]
public class Favorite
{
    public int Id { get; set; }
    public string Title { get; set; }
    public string Url { get; set; }
}

这是我的WCF服务:

[OperationContract]
    public List<Favorite> GetFavorites()
    {
        MembershipUser thisUser = Membership.GetUser(HttpContext.Current.User.Identity.Name);
        int userId = (int)thisUser.ProviderUserKey;
        return GetFavorites(userId);
    }

以下是服务的配置:

<system.serviceModel>
<services>
  <service name="MySvc">
    <endpoint address="" behaviorConfiguration="MySvcEndpointBehavior"
              binding="webHttpBinding"
              contract="MySvc" />
  </service>
</services>
<behaviors>
  <endpointBehaviors>
    <behavior name="MySvcEndpointBehavior">
      <enableWebScript />
    </behavior>
  </endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />

以下是我实际调用该服务的jQuery脚本:

$.ajax({
    type: "POST",
    url: "MySvc.svc/GetFavorites",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (result) {
        var favs = result.d;
    }
});

在我的javascript中,我可以调用“favs.length”,它会给我正确数量的结果。但是,如果我尝试访问“favs [0] .Title”,我会收到“未定义”的消息。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

只需使用控制台。

success: function (result) {

// log
console.log(result);

// dir
console.dir(result);

// iterating through an object's properties in JS

for(var i = 0; i < favs.length; i++){
    for(property in favs[i]){
        console.log(property + ": " + favs[i][property]);
    }
}

};