使用FileResult创建RSS/Atom提要
本文关键字:Atom 提要 RSS FileResult 创建 使用 | 更新日期: 2023-09-27 18:07:04
我尝试为我的ASP创建一个RSS提要。NET MVC 5网站。我创建了一些类来创建带有XmlSerializer
的XML。我在一个特殊的Result
类中使用这个序列化器,该类派生自FileResult
:
public class RssResult : FileResult
{
public RssResult() : base( "application/rss+xml") { }
protected override void WriteFile(HttpResponseBase response)
{
var seri = new XmlSerializer(typeof(RssFeed));
seri.Serialize(response.OutputStream, this.Feed);
}
public RssFeed Feed { get; set; }
}
然后我为Controller
写了一个扩展方法:
public static RssResult RssFeed(this Controller controller, RssFeed feed, string FileDownloadName = "feed.rss")
{
return new RssResult()
{
Feed = feed,
FileDownloadName = FileDownloadName
};
}
如果我调用一个返回RssResult
的操作,Firefox和Internet Explorer要求我下载该文件。但是我想看到浏览器的典型读者界面。
我在这里分别做错了什么,我必须改变什么?
FileResult添加了一个content-disposition
标题,提示浏览器中的"下载"。
如果你有你的数据序列化,只需返回content-type
(例如application/xml
或你已经有(application/rss+xml
)…所以要么返回Content
,要么从ActionResult
派生
请参阅MvcContrib中的XMLResult示例-注意它派生自ActionResult
(而不是FileResult
)
Hth…