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

C# 为什么Response.Write()只写列表中的第一个元素?,c#,asp.net,xml,.net-4.0,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 = Sy

我正试图在我的网页上写一些联合声明

我使用.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>
结果:


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

更新
我刚刚将您的代码粘贴到表单页面,它显示了所有15个结果。

它是只写列表中的第一项还是只写列表中的最后一项?我毫不怀疑它正在写列表中的所有项-换句话说,列表中只有一项。首先,我想你可能在那里发现了一些东西。@JohnSaunders该列表中只有一项吗?XML中的内容无关紧要。重要的是代码运行时内存中的内容。在foreach之前设置一个断点,看看里面有什么。不,我看到的标题输出是“约翰·麦基:医疗保健和自由企业资本家的未来……房地产工人应该得到更多的工资……等等”,我更新了我的答案。我将您的代码粘贴到一个新的表单应用程序中,它似乎可以像您所期望的那样工作。你似乎做得对。你开发的是哪个版本的.net?事实证明它在chrome和explorer中工作,而不是在firefox中。可能是缓存问题,尽管我认为调试会自动忽略缓存。哦,好吧。
<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>