SyndicationFeed генерирует исключение при сортировке и передаче в представление MVC ViewData.Model.Items[0]

SyndicationFeed возвращается из метода GetPosts. Затем фид синдикации возвращается в качестве аргумента для представления. Представление пытается отобразить первый SyndicationItem в виде столбца полной ширины. Затем в представлении отображаются оставшиеся 2 сообщения в строке. Все отлично работает, если я беру один канал и возвращаю его. Но как только я использую execute mainFeed.Items.Union(syndicationFeed.Items).OrderByDescending(u => u.PublishDate)); внезапно поток не может быть обработан представлением.

     private SyndicationFeed GetPosts()
    {
        SyndicationFeed mainFeed = new SyndicationFeed();
        foreach (var feed in GetRssFeeds())
        {
            Uri feedUri = new Uri(feed);
            SyndicationFeed syndicationFeed;
            SyndicationFeed tempFeed;
            using (XmlReader reader = XmlReader.Create(feedUri.AbsoluteUri))
            {
                syndicationFeed = SyndicationFeed.Load(reader);
            }
            tempFeed = new SyndicationFeed(
            mainFeed.Items.Union(syndicationFeed.Items).OrderByDescending(u => u.PublishDate));
            mainFeed = tempFeed;
            //mainFeed = syndicationFeed;
        }
        return mainFeed;
    }

Метод Контроллера

    public ActionResult TechNews()
    {
        //SyndicationFeed OnePostList = GetPosts("http://blog.prodataman.com/feed/atom/");

        SyndicationFeed AllPostLists = GetPosts();

        return View(AllPostLists);
    }

Код для просмотра

    @{ var latestPost = ViewData.Model.Items[0];
        String latestPostUrl = latestPost.Links[0].Uri.OriginalString;
    }
        <div class="row">
            <div class="col-md-12">
                <h3><a href=@latestPostUrl><b>@latestPost.Title.Text</b></a></h3>
                @if (latestPost.Authors.Count != 0)
                {
                    <b>@latestPost.Authors[0].Name</b>
                    <i>@latestPost.PublishDate.DateTime</i>                    }
                @if (latestPost.Summary != null)
                {
                    <div class="container">@Html.Raw(latestPost.Summary.Text) <a href=@latestPostUrl>Read More...</a></div>
                }
            </div>
        </div>

Имейте в виду, что представление прекрасно работает без изменений, если я закомментирую строку mainFeed = tempFeed; и раскомментируйте mainFeed = syndicationFeed;

0 ответов

Другие вопросы по тегам