C# 为什么Response.Write()只写列表中的第一个元素?
我正试图在我的网页上写一些联合声明 我使用.Net类将rss内容放入列表中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
<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>