【问题标题】:Can not convert type AnonymousType?无法转换类型匿名类型?
【发布时间】:2013-10-04 02:10:17
【问题描述】:

我想将查询 (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”

我该如何解决这个错误?

【问题讨论】:

    标签: json asp.net-mvc-4 razor partial-views anonymous-types


    【解决方案1】:

    这里有几个问题。

    在您的操作方法中,您尝试将IEnumerable&lt;Suivis&gt; 传递给您的视图。

    但您的视图期待IEnumerable&lt;Suivi_Client&gt;

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

    我将猜测您想要做的是让您的 linq 查询选择到 IEnumerable&lt;Suivi_Client&gt; 以便您的视图可以完成它的工作。为此,您需要将代码更改为与此类似的代码

    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);
    

    您提供的代码中有很多未知数,并且您正在使用未在代码 sn-ps 中显示的对象。如果您可以解释您希望 linq 查询实际执行的操作,我相信有人可以发布一个更完整/更好的示例来说明如何实现您的目标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-06
      • 1970-01-01
      • 1970-01-01
      • 2020-08-26
      • 1970-01-01
      • 2016-01-11
      • 2010-11-27
      • 1970-01-01
      相关资源
      最近更新 更多