2012-01-13 54 views
0

我創建了一個支持AJAX的WCF服務來返回我創建的自定義類的List <>。我可以讓它返回數據,但我不知道如何訪問我的類的屬性值。如何從支持AJAX的WCF服務(ASP.Net)獲取返回對象屬性?

這裏是我的類:

[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的腳本whe再我居然撥打服務:

$.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

您是否嘗試過使用調試器來查看內容? – 2012-01-13 22:12:37

+0

是的,我用Chrome來瀏覽我的javascript,並且我可以在調試器中看到對象屬性及其值,但我不知道如何以編程方式訪問這些值。 – tjc59 2012-01-13 22:21:18

+0

屬性的名稱是什麼?我的意思是,如果你能看到'favs [0]',並且你可以看到'favs [0]'具有'title'屬性,那麼當然可以使用'favs [0] .title'。 'var fav = favs [0];'然後看'fav'。 – 2012-01-13 22:23:01

回答

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]); 
    } 
} 

}; 
+0

這很奇怪,這幾乎就像它試圖說我的「標題」屬性實際上被稱爲「 k__BackingField」。 – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/856346/">tjc59</a></span> <span>2012-01-13 22:43:09</span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">嘗試使用[DataContract]而不是[Serializable接口] 此外,添加[數據成員]每個屬性 即 [數據成員] 公共字符串名稱{獲得;組; } – <span class="text-secondary"> <small> <span>2012-01-14 00:15:02</span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">感謝Omar,只要我使用DataContract/DataMember而不是Serializable,它就按預期工作。 – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/856346/">tjc59</a></span> <span>2012-01-17 14:34:47</span> </small> </span> </p> </div> </div> </div> </div> </div> </article> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="4319274062" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> <div class="clearfix"> </div> <div class="relative-box"> <div class="relative">相關問題</div> <ul class="relative_list"> <li> 1. <a href="http://hk.voidcc.com/question/p-zjfjpkqu-vv.html" target="_blank" title="支持Ajax的WCF服務。如何從服務調用中返回複雜的對象?"> 支持Ajax的WCF服務。如何從服務調用中返回複雜的對象? </a> </li> <li> 2. <a href="http://hk.voidcc.com/question/p-acdrppqi-qu.html" target="_blank" title="支持ASP.NET Ajax的WCF服務,我該如何'發佈'而不是'獲取'?"> 支持ASP.NET Ajax的WCF服務,我該如何'發佈'而不是'獲取'? </a> </li> <li> 3. <a href="http://hk.voidcc.com/question/p-dgqclevq-th.html" target="_blank" title="嘗試從返回的對象獲取非對象的屬性"> 嘗試從返回的對象獲取非對象的屬性 </a> </li> <li> 4. <a href="http://hk.voidcc.com/question/p-htpjtpos-u.html" target="_blank" title="如何從ajax請求返回的JSON對象獲取屬性PHP?"> 如何從ajax請求返回的JSON對象獲取屬性PHP? </a> </li> <li> 5. <a href="http://hk.voidcc.com/question/p-bvubiycs-tq.html" target="_blank" title="WCF服務修改返回對象屬性影響"> WCF服務修改返回對象屬性影響 </a> </li> <li> 6. <a href="http://hk.voidcc.com/question/p-rlhocuka-ea.html" target="_blank" title="返回從WCF Web服務獲得的對象"> 返回從WCF Web服務獲得的對象 </a> </li> <li> 7. <a href="http://hk.voidcc.com/question/p-fikdemxu-pm.html" target="_blank" title="WCF Ajax服務返回值"> WCF Ajax服務返回值 </a> </li> <li> 8. <a href="http://hk.voidcc.com/question/p-bcfzccif-eh.html" target="_blank" title="將定製屬性添加到從WCF返回的對象RIA服務"> 將定製屬性添加到從WCF返回的對象RIA服務 </a> </li> <li> 9. <a href="http://hk.voidcc.com/question/p-xhootysq-me.html" target="_blank" title="WCF服務操作返回對象圖"> WCF服務操作返回對象圖 </a> </li> <li> 10. <a href="http://hk.voidcc.com/question/p-xfdqmtwd-nt.html" target="_blank" title="如何直接從Silverlight的WCF RIA域服務獲取對象"> 如何直接從Silverlight的WCF RIA域服務獲取對象 </a> </li> <li> 11. <a href="http://hk.voidcc.com/question/p-evaikzfu-sp.html" target="_blank" title="支持回撥服務的WCF協議"> 支持回撥服務的WCF協議 </a> </li> <li> 12. <a href="http://hk.voidcc.com/question/p-drsgfuoe-sq.html" target="_blank" title="如何從FB.api返回的對象讀取屬性數據?"> 如何從FB.api返回的對象讀取屬性數據? </a> </li> <li> 13. <a href="http://hk.voidcc.com/question/p-anfmdgmz-hd.html" target="_blank" title="從對象獲取屬性"> 從對象獲取屬性 </a> </li> <li> 14. <a href="http://hk.voidcc.com/question/p-aqpbywey-kq.html" target="_blank" title="如何從$ .ajax從web服務返回"> 如何從$ .ajax從web服務返回 </a> </li> <li> 15. <a href="http://hk.voidcc.com/question/p-ovonuxub-hm.html" target="_blank" title="如何從WCF Web服務返回XML?"> 如何從WCF Web服務返回XML? </a> </li> <li> 16. <a href="http://hk.voidcc.com/question/p-yfxezbkn-dy.html" target="_blank" title="如何從WCF服務返回Json?"> 如何從WCF服務返回Json? </a> </li> <li> 17. <a href="http://hk.voidcc.com/question/p-oftjocsh-tp.html" target="_blank" title="Ajax調用返回Object(對象),如何獲取值從中"> Ajax調用返回Object(對象),如何獲取值從中 </a> </li> <li> 18. <a href="http://hk.voidcc.com/question/p-sioewlqv-do.html" target="_blank" title="如何調用支持Ajax的WCF服務與jQuery"> 如何調用支持Ajax的WCF服務與jQuery </a> </li> <li> 19. <a href="http://hk.voidcc.com/question/p-ksclvdnu-sm.html" target="_blank" title="從WCF服務返回MembershipUser"> 從WCF服務返回MembershipUser </a> </li> <li> 20. <a href="http://hk.voidcc.com/question/p-qfosopjr-pw.html" target="_blank" title="從wcf服務返回xdocument"> 從wcf服務返回xdocument </a> </li> <li> 21. <a href="http://hk.voidcc.com/question/p-bbjendvn-ga.html" target="_blank" title="返回XML從WCF服務"> 返回XML從WCF服務 </a> </li> <li> 22. <a href="http://hk.voidcc.com/question/p-aimurqcg-me.html" target="_blank" title="從WCF服務返回401"> 從WCF服務返回401 </a> </li> <li> 23. <a href="http://hk.voidcc.com/question/p-yesdrjbb-ty.html" target="_blank" title="asp.net web服務返回空對象"> asp.net web服務返回空對象 </a> </li> <li> 24. <a href="http://hk.voidcc.com/question/p-gobcnwnf-vu.html" target="_blank" title="返回屬性的對象?"> 返回屬性的對象? </a> </li> <li> 25. <a href="http://hk.voidcc.com/question/p-oufcxayn-rd.html" target="_blank" title="支持WCF-Ajax的Web服務。服務未部署時定義"> 支持WCF-Ajax的Web服務。服務未部署時定義 </a> </li> <li> 26. <a href="http://hk.voidcc.com/question/p-sjudxnew-sd.html" target="_blank" title="使用jQuery調用支持JSON的WCF服務返回null"> 使用jQuery調用支持JSON的WCF服務返回null </a> </li> <li> 27. <a href="http://hk.voidcc.com/question/p-duhdbnvt-c.html" target="_blank" title="對象不是從wcf web服務返回的"> 對象不是從wcf web服務返回的 </a> </li> <li> 28. <a href="http://hk.voidcc.com/question/p-bllizqwo-dd.html" target="_blank" title="從支持ajax的WCF服務傳遞FaultException細節?"> 從支持ajax的WCF服務傳遞FaultException細節? </a> </li> <li> 29. <a href="http://hk.voidcc.com/question/p-nxcdywer-cq.html" target="_blank" title="從jQuery調用支持AJAX的WCF服務 - MVC 2"> 從jQuery調用支持AJAX的WCF服務 - MVC 2 </a> </li> <li> 30. <a href="http://hk.voidcc.com/question/p-zyaeyqsj-to.html" target="_blank" title="返回屬性對象的類屬性"> 返回屬性對象的類屬性 </a> </li> </ul> </div> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3534119089"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img2.voidcc.com/voidso/script/side.js?t=1652515421930"></script> <script type="text/javascript" src="http://img2.voidcc.com/voidso/plugin/highlight/highlight.pack.js"></script> <link href="http://img2.voidcc.com/voidso/plugin/highlight/styles/docco.css" media="screen" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $('pre').each(function(i, e) { hljs.highlightBlock(e, "<span class='indent'> </span>", false) }); </script> <div class="col-lg-3 col-md-4 col-sm-5"> <div id="rightTop"> <div class="row"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- VOIDCC问答侧边栏广告 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3862022848" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> 最新問題 </div> <div class="m-b-sm m-t-sm clearfix"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://hk.voidcc.com/question/p-qtzwkniu-nq.html" target="_blank" title="javascript中的asp.net自動完成組合框函數"> javascript中的asp.net自動完成組合框函數 </a> </li> <li class="side_article_list_item"> 2. <a href="http://hk.voidcc.com/question/p-zqmrcxhj-hn.html" target="_blank" title="如何使用具有多參數函數的magrittr管道?"> 如何使用具有多參數函數的magrittr管道? </a> </li> <li class="side_article_list_item"> 3. <a href="http://hk.voidcc.com/question/p-cdeeigig-ts.html" target="_blank" title="Retrofit2中的數據緩存"> Retrofit2中的數據緩存 </a> </li> <li class="side_article_list_item"> 4. <a href="http://hk.voidcc.com/question/p-dmyecgko-tt.html" target="_blank" title="安裝在netstandard 2.0項目中的nuget軟件包中不支持xdt轉換嗎?"> 安裝在netstandard 2.0項目中的nuget軟件包中不支持xdt轉換嗎? </a> </li> <li class="side_article_list_item"> 5. <a href="http://hk.voidcc.com/question/p-fkbbhvih-tr.html" target="_blank" title="從列表中返回MAX值VLOOKUP"> 從列表中返回MAX值VLOOKUP </a> </li> <li class="side_article_list_item"> 6. <a href="http://hk.voidcc.com/question/p-feqanaul-tr.html" target="_blank" title="Webassembly的含義是0x40字節?"> Webassembly的含義是0x40字節? </a> </li> <li class="side_article_list_item"> 7. <a href="http://hk.voidcc.com/question/p-sudpyuxp-tp.html" target="_blank" title="PHP和Ajax分頁。爲什麼GET方法總是返回空值?"> PHP和Ajax分頁。爲什麼GET方法總是返回空值? </a> </li> <li class="side_article_list_item"> 8. <a href="http://hk.voidcc.com/question/p-hpopbzgd-ma.html" target="_blank" title="如何獲得特定列的數據類型,長度在SQL Server 2008"> 如何獲得特定列的數據類型,長度在SQL Server 2008 </a> </li> <li class="side_article_list_item"> 9. <a href="http://hk.voidcc.com/question/p-tupltssw-ne.html" target="_blank" title="CakePHP - 將一個空值傳遞給單選按鈕"> CakePHP - 將一個空值傳遞給單選按鈕 </a> </li> <li class="side_article_list_item"> 10. <a href="http://hk.voidcc.com/question/p-efytxwpv-mm.html" target="_blank" title="只打印在.csv文件中的某些行"> 只打印在.csv文件中的某些行 </a> </li> </ul> </div> </div> </div> <p class="article-nav-bar"></p> <div class="row sidebar article-nav"> <div class="row box_white visible-sm visible-md visible-lg margin-zero"> <div class="top"> <h3 class="title"><i class="glyphicon glyphicon-th-list"></i> 相關問題</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://hk.voidcc.com/question/p-zjfjpkqu-vv.html" target="_blank" title="支持Ajax的WCF服務。如何從服務調用中返回複雜的對象?"> 支持Ajax的WCF服務。如何從服務調用中返回複雜的對象? </a> </li> <li class="side_article_list_item"> 2. <a href="http://hk.voidcc.com/question/p-acdrppqi-qu.html" target="_blank" title="支持ASP.NET Ajax的WCF服務,我該如何'發佈'而不是'獲取'?"> 支持ASP.NET Ajax的WCF服務,我該如何'發佈'而不是'獲取'? </a> </li> <li class="side_article_list_item"> 3. <a href="http://hk.voidcc.com/question/p-dgqclevq-th.html" target="_blank" title="嘗試從返回的對象獲取非對象的屬性"> 嘗試從返回的對象獲取非對象的屬性 </a> </li> <li class="side_article_list_item"> 4. <a href="http://hk.voidcc.com/question/p-htpjtpos-u.html" target="_blank" title="如何從ajax請求返回的JSON對象獲取屬性PHP?"> 如何從ajax請求返回的JSON對象獲取屬性PHP? </a> </li> <li class="side_article_list_item"> 5. <a href="http://hk.voidcc.com/question/p-bvubiycs-tq.html" target="_blank" title="WCF服務修改返回對象屬性影響"> WCF服務修改返回對象屬性影響 </a> </li> <li class="side_article_list_item"> 6. <a href="http://hk.voidcc.com/question/p-rlhocuka-ea.html" target="_blank" title="返回從WCF Web服務獲得的對象"> 返回從WCF Web服務獲得的對象 </a> </li> <li class="side_article_list_item"> 7. <a href="http://hk.voidcc.com/question/p-fikdemxu-pm.html" target="_blank" title="WCF Ajax服務返回值"> WCF Ajax服務返回值 </a> </li> <li class="side_article_list_item"> 8. <a href="http://hk.voidcc.com/question/p-bcfzccif-eh.html" target="_blank" title="將定製屬性添加到從WCF返回的對象RIA服務"> 將定製屬性添加到從WCF返回的對象RIA服務 </a> </li> <li class="side_article_list_item"> 9. <a href="http://hk.voidcc.com/question/p-xhootysq-me.html" target="_blank" title="WCF服務操作返回對象圖"> WCF服務操作返回對象圖 </a> </li> <li class="side_article_list_item"> 10. <a href="http://hk.voidcc.com/question/p-xfdqmtwd-nt.html" target="_blank" title="如何直接從Silverlight的WCF RIA域服務獲取對象"> 如何直接從Silverlight的WCF RIA域服務獲取對象 </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div><!-- wrap end--> <!-- footer --> <footer id="footer"> <div class="bg-simple lt"> <div class="container"> <div class="row padder-v m-t"> <div class="col-xs-8"> <ul class="list-inline"> <li><a href="http://hk.voidcc.com/contact">聯系我們</a></li> <li>© 2020 HK.VOIDCC.COM</li> <li><a rel="nofollow" href="https://beian.miit.gov.cn/" target="_blank">沪ICP备13005482号-13</a></li> <li><script type="text/javascript" src="https://s9.cnzz.com/z_stat.php?id=1280098168&web_id=1280098168"></script></li> <li><a href="http://cn.voidcc.com/" target="_blank" title="程序问答园区">简体中文</a></li> <li><a href="http://hk.voidcc.com/" target="_blank" title="程序問答園區">繁體中文</a></li> <li><a href="http://ru.voidcc.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.voidcc.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.voidcc.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.voidcc.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.voidcc.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.voidcc.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.voidcc.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.voidcc.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.voidcc.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.voidcc.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.voidcc.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-77509369-5"></script> <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'UA-77509369-5'); </script> <script> var _hmt = _hmt || []; (function () { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?67d4731349f0b00136755b80364ce381"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>