使用html.grid显示子对象
-
26-10-2019 - |
题
我有一个ASP.NET MVC应用程序,该应用程序正在使用单个视图来显示模型实体的属性和儿童(及其属性)。
我的模型看起来像这样:
public class Market
{
public int ID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public IList<EmailAddress> EmailAddresses { get; set; }
}
public class EmailAddress
{
public virtual int ID { get; set; }
public virtual int MarketID { get; set; }
public virtual string Email { get; set; }
}
在视图上,我想使用表显示相关电子邮件地址的列表。为此,我正在使用html.grid。
<%= Html.Grid(Model.EmailAddresses).Columns( column =>
{
column.For(x => x.Email + Html.Hidden("ID", x.ID)).Encode(false).Sortable(false);
})
.Attributes(style => "width:100%")
.Attributes(id => "emailGrid")
.Empty("There are no Email Addresses set up") %>
但是,当我这样做时,隐藏的ID是母体实体市场的ID,而不是电子邮件address的ID。
我该如何解决这个问题?
解决方案
看来这可能是WebGrid中的错误。您是否尝试过在电子邮件address类中重命名ID字段,例如emailID并将其传递给WebGrid并查看是否正确显示?
其他提示
这对我有用,难道您的模型填充有问题吗?
由于您正在使用lambda表达式 Column.For()
方法,X参数重新指的是一个电子邮件。我认为您的意思是参考模型,而不是一个电子邮件ID
我认为您只想要模型。
不隶属于 StackOverflow