1

私はC#を初めて使用し(最近学習しています)、物事を学ぶためのテストプロジェクトとしてFBおよびC#Facebook SDKを選択しました(おそらく良い考えではありません)。ここに問題があります。

VS 2010、ASP.NET MVC 3 を使用しています

次のコードを使用して、FB からデータを取得しています

public ActionResult FBLandingPageFinal ( string accessToken )
        {
 var newfb = new FacebookClient ( accessToken );
 dynamic FQLResultSet = newfb.Get ( "fql", new { q = "select uid, name from user where is_app_user = 1 and uid in (SELECT uid2 FROM friend WHERE uid1 = me())" } );
 ViewBag.FQLResultSet = FQLResultSet;

         }

これで、次の形式の json 形式でデータが返されます

{
  "data": [
    {
      "uid": XXXXX, 
      "name": "User Name 1"
    }, 
    {
      "uid": XXXXX, 
      "name": "User Name 2"
    }, 
    {
      "uid": XXXXX, 
      "name": "User Name 3"
    }
  ]
}

この時点まではすべて正常に動作しています。aspx ページでこのビューバッグ オブジェクトからデータを抽出する方法を教えてもらえますか (私はかみそりの構文を使用していません) 。

aspxページで、これは私が達成しようとしていることです

<ul>

<%
 foreach (var item in ViewBag)
{ 
%>

<li><a href="#" ><img src="https://graph.facebook.com/<%={uid from viewbag}%>/picture" alt="" /></a> <%{name from ViewBag} %></li>
<%
}

%>

どんなアドバイスも本当に助けになります。私がやっていることをすべて説明しようとしたので、あなたたちが長い質問を読むのに費やした時間と労力に感謝します.

ご案内お待ちしております

4

1 に答える 1

1

そのJSONをViewBagに配置する前に、そのJSONをオブジェクトに逆シリアル化する必要があります。JavaScriptSerializerを次のように使用できます

public ActionResult FBLandingPageFinal (string accessToken)
    {
     var newfb = new FacebookClient (accessToken);
     dynamic jsonResult= newfb.Get ( 
                             "fql", 
                              new { 
                               q = "select uid, name from user where is_app_user = 1 and uid in (SELECT uid2 FROM friend WHERE uid1 = me())" 
                                  });
     var serializer = new JavaScriptSerializer();
     ViewBag.FQLResultSet = serializer.Deserialize<ImageSet>(jsonResult);
    }

// You have to define this class
public class FbImage
{
   public string string name {get; set;}
   public string string uid {get; set;}
}

// And this one
public class ImageSet
{
   public List<FbImage> images {get; set;}
}

そして、あなたの見解では、これがあなたがすることです:

<ul>
<%foreach (var item in ViewBag.FQLResultSet.images ){%>
<li>
   <a href="#" >
    <img src="https://graph.facebook.com/<%={item.uid}%>/picture" alt="" />
   </a> <%{item.name} %>
</li>
<%}%>
于 2012-08-18T18:10:13.660 に答える