gpt4 book ai didi

c# - 使用 .net mvc 5 列出多对多表关系中的数据

转载 作者:太空宇宙 更新时间:2023-11-03 12:04:25 24 4
gpt4 key购买 nike

我是 Asp.Net MVC 的学生开发者。我正在做一些小的 .Net MVC 项目来学习它自己的项目,我第一次面对表之间的多对多关系。我有两个具有多对多关系的模型 usersModelgroupsModel .它们由 usersgroupModel 关联以多对多的方式。在我的家庭 Controller 中,我试图用 LinkQ 代码列出表格的内容。但我没有。当我运行我的项目时,在我的 Index.cshtml 中模型正在变为空值。在这种情况下,我的 View 向我发送了一个错误,如

'System.Data.Entity.Infrastructure.DbQuery1[<>f__AnonymousType22[System.String,System.String]]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1[Agm.Models.EntityFramework.Groups]'...

在我的索引页面中,我可以根据 userId 和 groupId 列出我的数据怎么办?你能帮我解决这个问题吗?从现在开始感谢。

我的用户模型;

    public class usersModel
{
public int userId { get; set; }
public string userNameSurname { get; set; }
public virtual ICollection<Groups> Groups { get; set; }
}

我的群组模型:

 public class groupsModel
{
public int groupId { get; set; }
public string groupName { get; set; }
public virtual ICollection<Users> Users { get; set; }
}

我的 Controller :

public ActionResult Index()
{
var userGroups = from g in db.Groups
from u in g.Users
select new
{
g.groupName,
g.groupImageUrl
};
return View(userGroups);
}

我的索引页:

@model IEnumerable<Agm.Models.EntityFramework.Groups>

<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.groupName)
</th>
<th>
@Html.DisplayNameFor(model => model.groupImageUrl)
</th>
<th></th>
</tr>

@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.groupName)
</td>
<td>
@Html.DisplayFor(modelItem => item.groupImageUrl)
</td>
</tr>
}

</table>

最佳答案

像这样创建 View 模型:

 public class UsersGroupViewModel
{
public string GroupName{ get; set; }
public string GroupImageUrl{ get; set; }
}

将你的 Action 改为这个:

public ActionResult Index()
{
var userGroups = (from g in db.Groups
from u in g.Users
select new UsersGroupViewModel()
{
GroupName = g.groupName,
GroupImageUrl = g.groupImageUrl
}).ToList();
return View(userGroups);
}

并将 View 模型更改为此:

@model List<UsersGroupViewModel>

关于c# - 使用 .net mvc 5 列出多对多表关系中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55784069/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com