0

我想将查询(JSON)的结果从控制器传递到局部视图,这就是我创建如下强类型的原因:

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

我该如何解决这个错误?

4

1 回答 1

0

这里有几个问题。

在您的 Action Method 中,您试图将 an 传递IEnumerable<Suivis>给您的视图。

但你的观点是期待一个IEnumerable<Suivi_Client>.

下一个问题是您的 linq 查询正在selecting(转换)为匿名对象,但您正试图将其放入IEnumerable<Suivis>.

我将猜测您想要做的是将您的 linq 查询选择为 anIEnumerable<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 查询实际执行的操作,我相信有人可以发布一个更完整/更好的示例来说明如何实现您所追求的。

于 2013-10-04T04:38:59.727 回答