我有一个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是父实体Market的ID,而不是EmailAddress的ID。
我该如何解决这个问题?
答案 0 :(得分:1)
似乎它可能是WebGrid中的一个错误。您是否尝试在EmailAddress类中重命名您的ID字段,例如EmailID并将其传递给WebGrid并查看它是否正确显示?
答案 1 :(得分:1)
这对我有用,可能是你的模型填充有问题吗?
答案 2 :(得分:1)
由于您正在为Column.For()
方法使用lambda表达式,因此x参数指的是单个电子邮件。我认为您的意思是引用模型,而不是单个电子邮件ID
我认为你只需要Model.ID
,而不是做x.ID