为什么Response.Write()只写入列表中的第一个元素?

时间:2013-01-18 00:09:55

标签: c# asp.net xml .net-4.0

我正在尝试在我的页面上写一些联合供稿,

我使用.Net类将rss内容放入列表

<div>    
    <%
        var r = System.Xml.XmlReader.Create("http://www.huffingtonpost.com/feeds/verticals/small-business/index.xml");
        System.ServiceModel.Syndication.SyndicationFeed albums = System.ServiceModel.Syndication.SyndicationFeed.Load(r);
        r.Close(); 

        foreach (System.ServiceModel.Syndication.SyndicationItem album in albums.Items)
        {
            Response.Write(album.Title.Text);                        
        }                          
    %>
</div>

foreach此处仅作为 forfirst 运行,因为它只会在列表中写入第一个SyndicationItem。如您所见,there are many items in that list。哪里可能是我的错?

为了确保我的专辑列表中不仅有1个项目,我确实依赖它。

<div>

        <%
            var r = System.Xml.XmlReader.Create("http://www.huffingtonpost.com/feeds/verticals/small-business/index.xml");
            System.ServiceModel.Syndication.SyndicationFeed albums = System.ServiceModel.Syndication.SyndicationFeed.Load(r);
            r.Close();
            int i = albums.Items.ToList().Count;

            Response.Write(i); 

          /*  foreach (System.ServiceModel.Syndication.SyndicationItem album in albums.Items)
            {
                Response.Write(album.Title.Text); 
            } */

         %>

    </div>

结果:

enter image description here

1 个答案:

答案 0 :(得分:1)

我想知道你看到的标题输出是否是“huffingtonpost.com上的小型企业”。如果是,那么它正常工作。列表中有一个项目包含许多条目。在当前迭代中进行另一次迭代,你应该好好去。

List of titles from huffingtonPost

更新 我只是将你的代码粘贴在一个表单页面中,它得到了所有15个结果。