咆哮窗口 - rss饲料不被解析 - 格式错误?
所以我正在尝试使用用于Windows的Growl的自定义订户SDK。尝试动态创建RSS提要。使用C#和Razor视图。这是一个什么样的观点看起来像到我指着用户的URL样本:使用此URL咆哮窗口 - rss饲料不被解析 - 格式错误?
@model GrowlExtras.Subscriptions.FeedMonitor.FeedItem
<?xml version="1.0" encoding="UTF-8" ?>
@{
Response.ContentType = "application/rss+xml";
ViewBag.Title = "Feed";
}
<rss version="2.0">
<channel>
<title>@Model.Title</title>
<link>@Url.Action("Feed", "Home", null, "http")</link>
<description>@Model.Description</description>
<lastBuildDate>@Model.PubDate</lastBuildDate>
<language>en-us</language>
</channel>
</rss>
本页面被本地访问(现在):http://localhost:2751/Home/Feed
。所以,我把这个url作为“订阅通知弹出窗口”上的“Feed Url:”,但是得到一个错误“无法解析feed”,而OpenReadCompletedEventArgs e结果抛出异常“OpenReadCompletedEventArgs”(e .Result).Length'抛出'System.NotSupportedException'类型的异常“
任何帮助欢迎!我在这里完全吠叫错误的树,还是错过了Feed文件的格式?不要以为这个页面目前是在本地托管的呢?
真正的答案是,Razor验证你正在尝试写的是有效的HTML。如果你不这样做,剃刀会失败。
你的代码试着写不正确HTML:
如果你看documentation of link tag in w3schools你可以阅读以不同的方式表达了同样的事情:
- “元素是空元素,它包含属性只要。”
- “在HTML中,标签没有结束标签。”
这是什么意思是,链接是一个独立标记,所以你必须写这个标签作为一个自闭的标签,就像这样:
<link atrib1='value1' attrib2='value2' />
所以你不能做什么你试图这样做:使用内部内容的开放标签和结束标签。
这就是为什么Razor无法生成这个您的<xml>
文档。
但有你可以欺骗剃刀的一种方法:不要让它知道你在写一个标签,就像这样:
@Html.Raw("<link>")--your link's [email protected]("</link>")
记住,剃刀是编写HTML所以写XML它可能会变得有点棘手。
没错。现在得到这一个排序。
需要更多的挖掘!上面的页面没有正确解析为一个有效的xml页面,例如 - 这里生成了html标签,这引发了该插件的rss解析器。
我最终做的是使用内置的RSS聚合类和一些帮助从这些帖子/相关答案的主题。
<http://*.com/a/825016/1152015>
<http://*.com/a/684518/1152015>
<http://*.com/a/1292769/1152015>
<http://*.com/a/2690302/1152015>
<http://*.com/a/3098559/1152015>
<http://msdn.microsoft.com/en-us/library/bb412174>
所以,澄清 - 我的代码来使用RSS源,但被动态生成的页面并没有被我所用的解析器正确解析。