2010-02-05 30 views
6

(使用最新的MVC 2 RC 2)我試圖通過元素的屬性的值進行排序在LINQ(C#)一些XML ...如何在屬性值中對LINQ C#中的XML進行排序?此外MVC

var sites = from s in xDoc.Element("sites").Elements("site") 
orderby s.Attribute("name") 
select s; 

但是當我通過這個我查看我獲得例外:

Exception Details: System.ArgumentException: At least one object must implement IComparable. 
Source Error: 
Line 37:    </th> 
Line 38:   </tr> 
Line 39:   <% foreach (var item in Model) 
Line 40:    { %> 
Line 41:   <tr> 

有人能告訴我如何使用LINQ對XML進行排序並使其正確呈現?

回答

12

編輯:好吧,我覺得你只是想:

var sites = from s in xDoc.Element("sites").Elements("site") 
      orderby (string) s.Attribute("name") 
      select s; 

這也可以寫成:

var sites = xDoc.Element("sites") 
       .Elements("site") 
       .OrderBy(s => (string) s.Attribute("name")); 
+0

對不起,是的,你是正確─我抄錯片代碼到我的文章!哎呀。我現在糾正了它。 –

+0

'site'變量是我傳入我的視圖的值,例如:return View(site); –

+0

@Matt:右鍵 - 編輯。 –

相關問題