2013-10-04 184 views
0

我想通過從控制器到的局部視圖的查詢(JSON)的結果,這就是爲什麼我創建了一個強類型如下:無法轉換類型AnonymousType?

public class Suivi_Client 
{ 
    public string ClientID { get; set; } 
    public string Activite { get; set; } 
    public string ClientName { get; set; } 
} 

// list 
public class Suivis 
{ 
    public List<Suivi_Client> List_Clients { set; get; } 
} 

然後局部視圖:

@model IEnumerable<Project.Models.Suivi_Client> 
<html> 
    <body> 
<table border=1> 
<thead> 
    <tr> 
    <th> 
    ID 
    </th> 
    <th> 
    Name 
    </th> 
     <th> 
    Activite 
    </th> 
    </tr> 
</thead> 
@foreach(var item in Model){ 
foreach (var pop in item.List_Clients) 
{ 
<tr> 
    <td > 
     @Html.DisplayFor(modelItem => pop.ClientID) 
    </td> 
    < <td > 
     @Html.DisplayFor(modelItem => pop.ClientName) 
    </td> 
    <td > 
     @Html.DisplayFor(modelItem => pop.Activite) 
    </td> 

</tr> 
} 
} 
</table> 
    </body> 
    </html> 

這裏是操作方法:

public ActionResult Partial_suivi(string clients) 
     { 
     IEnumerable<Suivis> PopModel; 
       var activit = (from x in frh.productivites 
         join y in frh.Clients on x.action equals y.ClientName 
         where x.action.Equals(clients) 
         select new { x.actionID,x.Activité,y.ClientName,y.Responsable,y.TempsCible,x.tempsmoy_ }).Distinct().ToArray(); 
     PopModel = activit; 
      return PartialView(PopModel); 
     } 

但我有此錯誤:無法將類型 'AnonymousType#1 []' 到「Project.Models.Suivis

我該如何解決這個錯誤?

回答

0

這裏有幾個問題。

在您的操作方法中,您嘗試將IEnumerable<Suivis>傳遞給您的視圖。

但您的看法是期待IEnumerable<Suivi_Client>

接下來的問題是你的LINQ查詢是select ing(轉換)成一個匿名對象,但你試圖把它放到一個IEnumerable<Suivis>

我打算猜測,你想要做的是讓你的linq查詢選擇爲IEnumerable<Suivi_Client>,以便你的視圖可以完成它的工作。要做到這一點,你將你的代碼更改爲類似這種

IEnumerable<Suivi_Client> PopModel = (from x in frh.productivites 
             join y in frh.Clients on x.action equals y.ClientName 
             where x.Action.Equals(clients) 
             select new Suivi_Client 
             { 
              Activite = x.Activite, 
              ClientName = y.ClientName, 
              ClientID = ?? 
             }).Distinct(); 

return PartialView(PopModel); 

有很多從你提供的代碼未知的,而你正在使用的對象,你沒有在你的代碼片段顯示。如果你能解釋你希望你的linq查詢實際執行什麼,我肯定有人可以發佈一個更完整/更好的例子來說明如何實現你的目標。

相關問題