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;