4

我有一个 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。

我该如何补救?

4

3 回答 3

1

看来这可能是 WebGrid 中的错误。您是否尝试过在 EmailAddress 类中重命名您的 ID 字段,例如 EmailID 并将其传递给 WebGrid 并查看它是否正确显示?

于 2011-12-06T09:33:56.227 回答
1

这对我有用,可能是你的模型填充有问题吗?

于 2011-12-07T14:02:52.463 回答
1

由于您对该Column.For()方法使用 lambda 表达式,因此 x 参数指的是单个电子邮件。我认为您的意思是指模型,而不是单个电子邮件 ID

而不是做x.ID,我想你只想要Model.ID

于 2011-12-09T04:18:03.497 回答