0

在我的 ASP.NET MVC4 应用程序中,我需要一个下拉列表来选择一个位置并将其 ID 插入到一个表中,比如新闻。一些新闻适用于所有位置 - 因此新闻中的 LocationID 可以为空,以表明这一点。

所以我需要在下拉列表中添加“所有位置”。

这就是我想象的方式,它会起作用 - 但在最后一行 Value = DBNull.Value (或简单的 null )是不允许的。它只接受一个整数。我不能使用“0”作为该表上的外键约束不允许 0,因为 Locations-table 中没有 ID=0

var locations = db.Locations.Select(c => new { DisplayText = c.Location, Value = c.ID }).ToList();
locations.Insert(0, new { DisplayText = "All Locations", Value = DBNull.Value });
return Json(new { Result = "OK", Options = locations});

如何将其添加到选项列表中?

4

1 回答 1

1

您的位置匿名对象的基础是new {}在您的 Linq 语句的运算符中创建的。如果您需要允许 NULL,那么...new { DisplayText = c.Location, Value = (int?)c.ID }将匿名类型的 Value 参数显式设置为可为 null 的 int。然后你可以Value = null在插入时在下一行做。

于 2012-11-08T21:07:21.607 回答