咆哮窗口 - 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源,但被动态生成的页面并没有被我所用的解析器正确解析。