2013-08-26 105 views
0

Stackoverflow的RSS不綁定到Kendo網格

Hi All
我新的劍道mvc3和試圖讀取Stackoverflow Rss作爲我的網格模型,但我做不到。當我用雅虎的RSS我的項目工作,但不能與RSS#1工作

RSS鏈接

https://stackoverflow.com/feeds http://news.yahoo.com/rss/

我的控制器功能

public static IEnumerable<Rss> GetRssFeed() 
     { 

      XDocument feedXml = XDocument.Load("https://stackoverflow.com/feeds"); 
      var feeds = from feed in feedXml.Descendants("entry") 
         select new Rss 
         { 
          Title = feed.Element("title").Value, 
          Link = "<a href="+feed.Element("id").Value+">Go To Page</a>", 
          Description = feed.Element("summary").Value 
         }; 
      return feeds; 
     } 

public ActionResult Index() 
     { 
      var model = GetRssFeed(); 
      return View(model); 
     } 

****我部分視圖****

@model IEnumerable<KendoUIMvcApplication1.Models.Rss> 



<div data-role="page" data-title="Aravind's Partial View Test" data-add-back-btn="true" data-back-btn-text="Back"> 
    <div class="grid" style="margin-left: 5px;" id="grid"> 


@(Html.Kendo().Grid(Model) 
    .Name("Grid") 
    .Pageable() 
    .Sortable() 
    .Scrollable() 
    .Columns(columns => 
    { 
     columns.Bound(o => o.Title).Encoded(false); 
     columns.Bound(o => o.Description).Encoded(false); 
     columns.Bound(o => o.Link).Encoded(false); 
    }) 
    .Filterable() 
    .DataSource(dataSource => dataSource 
     .Ajax() 

    ) 
) 

    </div> 
</div> 

**** ****型

public class Rss 
     { 
      public string Link { get; set; } 
      public string Title { get; set; } 
      public string Description { get; set; } 
     } 

回答

0

Feed中包含了命名空間,所以選擇你需要包含這些命名空間中的節點時:

XDocument feedXml = XDocument.Load("http://stackoverflow.com/feeds"); 
var feeds = from feed in feedXml.Descendants("{http://www.w3.org/2005/Atom}entry") 
select new Rss 
{ 
    Title = feed.Element("{http://www.w3.org/2005/Atom}title").Value, 
    Link = "<a href=" + feed.Element("{http://www.w3.org/2005/Atom}id").Value + ">Go To Page</a>", 
    Description = feed.Element("{http://www.w3.org/2005/Atom}summary").Value 
}; 

你也可以把變量中的命名空間:

XDocument feedXml = XDocument.Load("http://stackoverflow.com/feeds"); 
var ns = XNamespace.Get("http://www.w3.org/2005/Atom"); 
var feeds = from feed in feedXml.Descendants(ns + "entry") 
select new 
{ 
    Title = feed.Element(ns + "title").Value, 
    Link = "<a href=" + feed.Element(ns + "id").Value + ">Go To Page</a>", 
    Description = feed.Element(ns + "summary").Value 
}; 

還要記住,在您提供的鏈接中,StackOverflo w使用Atom,而雅虎使用RSS是兩種不同的標準。你還提到你的代碼在雅虎工作是不太可能的,因爲在RSS中甚至沒有一個名爲<entry>的標籤。

+0

thanx ns工作 順便說一句,雅虎元素使用標題鏈接和項目標籤中的描述 – MustafaP

相關問題