EF多表查询结果转换成ViewModel

小枝_3 2021-05-26 01:27:31
我在项目中通过ef两表查询获取了一个var 数据集合


public dynamic GetAllPalte()
{
using (CSDC_DBEntities context =new CSDC_DBEntities())
{
var paltes = from p in context.T_palte
join u in context.T_user on p.u_id equals u.u_id
select new
{
p_id = p.p_id,
p_name = p.p_name,
p_logo =p.p_logo,
p_introduce =p.p_introduce,
p_discussnums =p.p_discussnums,
u_id =u.u_id,
u_name =u.u_username

};
return paltes.ToList();

}
}

我想将其在控制器中转换为ViewModel绑定到View视图中
我应该怎样做?
...全文
407 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
小枝_3 2021-05-26
  • 打赏
  • 举报
回复
引用 3 楼 exception92 的回复:
在view顶部声明@model时,如果从controller返回的是实体,则声明为@model xxx.xxx.BBSModel,如果是其它类型,则声明为对应类型即可。例如: @model List<BBSModel>,此时的Model就是List<BBSModel>。可以被正常迭代。
感谢回复 那我逻辑层的GetALLPalte 方法返回类型应该定义为LIst<?>什么类型?,我ViewMoel如此定义是否正确?
  • 打赏
  • 举报
回复
在view顶部声明@model时,如果从controller返回的是实体,则声明为@model xxx.xxx.BBSModel,如果是其它类型,则声明为对应类型即可。例如: @model List<BBSModel>,此时的Model就是List<BBSModel>。可以被正常迭代。
flybirding10011 2021-06-11
  • 举报
回复
@郑州高新区WPF小王子
  • 打赏
  • 举报
回复
View视图中的Model被认为是当前的View的实体对象,对象不支持迭代。
小枝_3 2021-05-26
  • 打赏
  • 举报
回复
引用 5 楼 exception92 的回复:
[quote=引用 4 楼 小枝_3 的回复:][quote=引用 3 楼 exception92 的回复:]在view顶部声明@model时,如果从controller返回的是实体,则声明为@model xxx.xxx.BBSModel,如果是其它类型,则声明为对应类型即可。例如: @model List<BBSModel>,此时的Model就是List<BBSModel>。可以被正常迭代。
感谢回复 那我逻辑层的GetALLPalte 方法返回类型应该定义为LIst<?>什么类型?,我ViewMoel如此定义是否正确?[/quote] 使用弱类型ViewBag在View中直接赋值或者select new 一个强类型转成List<定义的强类型>[/quote] 我尝试使用Select new 一个 var .tolist(),方法返回类型时 在 public List<BBSModel> GetALLPalte() 时,"List<BBSModel>"报错了
小枝_3 2021-05-26
  • 打赏
  • 举报
回复
引用 5 楼 exception92 的回复:
[quote=引用 4 楼 小枝_3 的回复:][quote=引用 3 楼 exception92 的回复:]在view顶部声明@model时,如果从controller返回的是实体,则声明为@model xxx.xxx.BBSModel,如果是其它类型,则声明为对应类型即可。例如: @model List<BBSModel>,此时的Model就是List<BBSModel>。可以被正常迭代。
感谢回复 那我逻辑层的GetALLPalte 方法返回类型应该定义为LIst<?>什么类型?,我ViewMoel如此定义是否正确?[/quote] 使用弱类型ViewBag在View中直接赋值或者select new 一个强类型转成List<定义的强类型>[/quote]能否就我上面的例子举一下例吗,麻烦了,还是有点疑惑(这个强类型是viewmodel吗)
  • 打赏
  • 举报
回复
引用 4 楼 小枝_3 的回复:
[quote=引用 3 楼 exception92 的回复:]在view顶部声明@model时,如果从controller返回的是实体,则声明为@model xxx.xxx.BBSModel,如果是其它类型,则声明为对应类型即可。例如: @model List<BBSModel>,此时的Model就是List<BBSModel>。可以被正常迭代。
感谢回复 那我逻辑层的GetALLPalte 方法返回类型应该定义为LIst<?>什么类型?,我ViewMoel如此定义是否正确?[/quote] 使用弱类型ViewBag在View中直接赋值或者select new 一个强类型转成List<定义的强类型>
小枝_3 2021-05-26
  • 打赏
  • 举报
回复
我做过这样的尝试 ViewModel代码

 public class BBSModel
    {
       public int p_id { get; set; }
       public string p_name { get; set; }
       public string p_logo { get; set; }
       public string p_introduce { get; set; }
       public int u_id { get; set; }
       public string u_username { get; set; }
    }
控制器代码

  public ActionResult BBS()
        {
            BBSModel bbsModel = new BBSModel();
            bbsModel = discussManager.GetALLPalte();                        
          

            return View(bbsModel);
        }
但是我在View视图中使用时
小海牙 2021-07-08
  • 举报
回复
@小枝_3 兄弟,你返回的是个BBSModel,不是List&lt;BBSModel&gt;,一个对象你循环啥

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧