使用 ICollection 编辑对象
本文关键字:对象 编辑 ICollection 使用 | 更新日期: 2023-09-27 18:35:09
当我使用虚拟集合编辑类时,Icollection变为空。我不在视图中使用 Icollection,所以我尝试了,使用 elementat() 隐藏。
型
public class Event
{
public Event() { EventId = Guid.NewGuid(); }
public Guid EventId { get; set; }
public string contenu { get; set; }
public virtual ICollection<BookedUser> BookedUsers { get; set; }
}
视图
@model WebApplication2.Models.Event
if (Model.BookedUsers.Count != null)
{
for (int i = 0; i < Model.BookedUsers.Count(); i++)
{
@Html.HiddenFor(m => m.BookedUsers.ElementAt(i).BookedUserId)
}
}
简单地说,你不能使用 ICollection
,因为 Razor 无法解析对ElementAt(i)
的调用以创建正确索引的输入名称。您需要一个列表,以便传递m.BookedUser[i].BookedUserId
.
这是使用视图模型的一个重要原因,因为实体(持久保存到数据库的类)通常与视图的需求不一致。创建视图模型,如下所示:
public class EventViewModel
{
public string contenu { get; set; }
public List<BookedUser> BookedUsers { get; set; }
}
然后映射到/从这里和Event