Asp.net core 如何通过Razor访问.NETMVC中的多对多对象

Asp.net core 如何通过Razor访问.NETMVC中的多对多对象,asp.net-core,asp.net-core-mvc,entity-framework-core,Asp.net Core,Asp.net Core Mvc,Entity Framework Core,使用EF7,我有一个引用多对多表的对象,使用代码优先的方法 public class EventUser { public string UserId { get; set; } public User User { get; set; } public int EventId { get; set; } public Event Event { get; set; } public string AdditionalInfo { get; set; }

使用EF7,我有一个引用多对多表的对象,使用代码优先的方法

public class EventUser
{
    public string UserId { get; set; }
    public User User { get; set; }
    public int EventId { get; set; }
    public Event Event { get; set; }
    public string AdditionalInfo { get; set; }
}
当我知道EventId时,我可以拉一个列表,并在Razor中显示它们。我想将这些对象中的每一个链接回控制器,以便用户可以编辑AdditionalInfo字段。由于对象没有一个Id字段,我如何向控制器发送适当的数据以访问该对象,因为仅使用一个Id是不够的

在这一点上,我可以通过以下方式实现:

<a asp-action="EditEventUser" asp-route-EventId="EventUser.EventId" asp-route-UserId="EventUser.UserId">Edit Event User</a>
编辑事件用户

但是,我想知道,如果我不知道其他的方法,这可以通过更干净的方式实现(如果有这样的方式)

为什么不像提取原始数据那样使用EventId呢?我将有多个EventUser表行具有相同的EventId。UserId和EventId的组合将使它们具有唯一性。多对多表。