C# .NET MVC Linq->XML RSS阅读器:Twitter XML解析错误

C# .NET MVC Linq->XML RSS阅读器:Twitter XML解析错误,c#,.net,asp.net-mvc,xml,linq-to-xml,C#,.net,Asp.net Mvc,Xml,Linq To Xml,似乎无论我做什么,我都无法在我的视图中显示我的twitter RSS提要。我没有收到任何错误,RSS提要加载正确,我只是无法获取模型的信息 这是我的视图模型 namespace MvcMusicStore.ViewModels { public class HomeRssFeedViewModel { public IEnumerable<TwitterPosts> Tweets { get; set; } public HomeRs

似乎无论我做什么,我都无法在我的视图中显示我的twitter RSS提要。我没有收到任何错误,RSS提要加载正确,我只是无法获取模型的信息

这是我的视图模型

namespace MvcMusicStore.ViewModels
{
    public class HomeRssFeedViewModel
    {
        public IEnumerable<TwitterPosts> Tweets { get; set; }

        public HomeRssFeedViewModel()
        {
            Tweets = GetPosts();
        }

        public IEnumerable<TwitterPosts> GetPosts()
        {
            var xmlTreeTwitter = XDocument.Load("http://twitter.com/statuses/user_timeline/...");
            XNamespace xmlns = "http://www.w3.org/2005/Atom";

            return from item in xmlTreeTwitter.Descendants(xmlns + "item")
                   select new TwitterPosts
                   {
                       pubDate = item.Element(xmlns + "pubDate").Value,
                       Title = item.Element(xmlns + "Title").Value,
                       Link = item.Element(xmlns + "link").Value
                   };
        }
        public class TwitterPosts
        {
            public string pubDate { get; set; }
            public string Title { get; set; }
            public string Link { get; set; }
        }
    }
}
以下是我的看法:

%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcMusicStore.ViewModels.HomeRssFeedViewModel>" %>

...
        <div class="rss">
           <% foreach(var tweet in Model.Tweets)
               {%>
                    <b><%: tweet.Title %></b>
              <% } %>
        </div>

我怀疑问题出在XML解析中。您正确地加载了tweets,但xmlTreeTwitter.subjections函数不返回任何内容,最后您的model.tweets.Count等于0,这就是您无法在视图中获得任何输出的原因。确保您使用了正确的名称空间和正确的选择器来解析XML响应。

我怀疑问题出在您的XML解析中。您正确地加载了tweets,但xmlTreeTwitter.subjections函数不返回任何内容,最后您的model.tweets.Count等于0,这就是您无法在视图中获得任何输出的原因。确保您使用了正确的名称空间和正确的选择器来解析XML响应。

您的LINQ查询就是问题所在。以下工作将起作用:

        public IEnumerable<TwitterPosts> GetPosts()
        {
            var xmlTreeTwitter = XDocument.Load("http://twitter.com/statuses/user_timeline/#####.rss");

            var v = from item in xmlTreeTwitter.Descendants("rss").Elements("channel").Elements("item")
                   select new TwitterPosts
                   {
                       pubDate = item.Element("pubDate").Value,
                       Title = item.Element("title").Value,
                       Link = item.Element("link").Value
                   };

            return v;
        }
        public class TwitterPosts
        {
            public string pubDate { get; set; }
            public string Title { get; set; }
            public string Link { get; set; }
        }

您的LINQ查询就是问题所在。以下工作将起作用:

        public IEnumerable<TwitterPosts> GetPosts()
        {
            var xmlTreeTwitter = XDocument.Load("http://twitter.com/statuses/user_timeline/#####.rss");

            var v = from item in xmlTreeTwitter.Descendants("rss").Elements("channel").Elements("item")
                   select new TwitterPosts
                   {
                       pubDate = item.Element("pubDate").Value,
                       Title = item.Element("title").Value,
                       Link = item.Element("link").Value
                   };

            return v;
        }
        public class TwitterPosts
        {
            public string pubDate { get; set; }
            public string Title { get; set; }
            public string Link { get; set; }
        }