从 Tumblr 删除后,RSS 删除的条目仍显示在 asp.net reader 中
RSS deleted entries still showing in asp.net reader after deletion from Tumblr
我已经成功创建了一个 ASP.NET RSS 提要 reader,我将它与 Tumblr 一起用于网站。它的工作原理是它获取了最近的 3 个帖子。我有 6 个帖子要测试,我删除了 3 个,但我的 reader 没有显示原来的三个帖子。它一直显示最后删除的 3 个。我已将 RSS 放入 Tumblr 的浏览器中,它显示正确,但我的 reader 一直显示已删除的三个帖子。我尝试清除缓存并更换浏览器,但我的 Feed 中仍然收到已删除的帖子。这是我在下面使用的代码:
前端代码:
<asp:GridView ID="gvRssLI" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<div>
<h3><%#Eval("Title") %></h3>
</div>
<div>
<%#Eval("PublishDate" , "{0:d}") %>
</div>
<div> </div>
<div align="right">
<a href='<%#Eval("Link") %>' target="_blank">Read More...</a>
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
代码隐藏代码:
private void PopulateRssFeed()
{
string rssFeedUrl = ConfigurationManager.AppSettings["RssFeedUrl"];
List<Feeds> feeds = new List<Feeds>();
XDocument xDoc = XDocument.Load(rssFeedUrl);
var items = (from x in xDoc.Descendants("item").Take(3)
select new
{
title = x.Element("title").Value,
link = x.Element("link").Value,
pubDate = x.Element("pubDate").Value,
});
if (items != null)
{
feeds.AddRange(items.Select(i => new Feeds
{
Title = i.title,
Link = i.link,
PublishDate = i.pubDate,
}));
}
gvRssLI.DataSource = feeds;
gvRssLI.AutoGenerateColumns = false;
gvRssLI.DataBind();
}
我测试了你的代码,它有效。提要显示正确。 Tumblr 的缓存时间似乎很长。但是正如您所说,关于该主题的信息很少,唯一有用的提示是 url.
https://twitter.com/fromedome/status/237250951889698816
但是你知道你可以制作强类型的 GridView 吗?您可以在 GridView 中使用 ItemType
,然后您可以使用 Item
访问 Class 属性。这有助于类型安全,因为 Item
已经是正确的数据类型。您必须将 YourNameSpace.Feeds
修改为正确的命名空间。
<asp:GridView ID="gvRssLI" runat="server" ItemType="YourNameSpace.Feeds">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<div>
<h3><%# Item.Title %></h3>
</div>
<div>
<%# Item.PublishDate.ToLongDateString() %>
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
注意:您还可以使用专用库来阅读 RSS 提要,例如 https://github.com/codehollow/FeedReader
我已经成功创建了一个 ASP.NET RSS 提要 reader,我将它与 Tumblr 一起用于网站。它的工作原理是它获取了最近的 3 个帖子。我有 6 个帖子要测试,我删除了 3 个,但我的 reader 没有显示原来的三个帖子。它一直显示最后删除的 3 个。我已将 RSS 放入 Tumblr 的浏览器中,它显示正确,但我的 reader 一直显示已删除的三个帖子。我尝试清除缓存并更换浏览器,但我的 Feed 中仍然收到已删除的帖子。这是我在下面使用的代码:
前端代码:
<asp:GridView ID="gvRssLI" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<div>
<h3><%#Eval("Title") %></h3>
</div>
<div>
<%#Eval("PublishDate" , "{0:d}") %>
</div>
<div> </div>
<div align="right">
<a href='<%#Eval("Link") %>' target="_blank">Read More...</a>
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
代码隐藏代码:
private void PopulateRssFeed()
{
string rssFeedUrl = ConfigurationManager.AppSettings["RssFeedUrl"];
List<Feeds> feeds = new List<Feeds>();
XDocument xDoc = XDocument.Load(rssFeedUrl);
var items = (from x in xDoc.Descendants("item").Take(3)
select new
{
title = x.Element("title").Value,
link = x.Element("link").Value,
pubDate = x.Element("pubDate").Value,
});
if (items != null)
{
feeds.AddRange(items.Select(i => new Feeds
{
Title = i.title,
Link = i.link,
PublishDate = i.pubDate,
}));
}
gvRssLI.DataSource = feeds;
gvRssLI.AutoGenerateColumns = false;
gvRssLI.DataBind();
}
我测试了你的代码,它有效。提要显示正确。 Tumblr 的缓存时间似乎很长。但是正如您所说,关于该主题的信息很少,唯一有用的提示是 url.
https://twitter.com/fromedome/status/237250951889698816
但是你知道你可以制作强类型的 GridView 吗?您可以在 GridView 中使用 ItemType
,然后您可以使用 Item
访问 Class 属性。这有助于类型安全,因为 Item
已经是正确的数据类型。您必须将 YourNameSpace.Feeds
修改为正确的命名空间。
<asp:GridView ID="gvRssLI" runat="server" ItemType="YourNameSpace.Feeds">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<div>
<h3><%# Item.Title %></h3>
</div>
<div>
<%# Item.PublishDate.ToLongDateString() %>
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
注意:您还可以使用专用库来阅读 RSS 提要,例如 https://github.com/codehollow/FeedReader