在 C# 中访问 SelectList 中对象的属性
Accessing properties of object in SelectList in C#
我是这里的新手。我正在尝试创建一个下拉列表 (SelectList
),它会在我的 ASP.NET MVC 应用程序中显示商店的位置。
Shop
class 有一个 Location
属性 而后者又有一个 Name
属性:
public class Shop
{
public int Id { get; set; }
public Location Location { get; set; }
}
public class Location
{
public int Id { get; set; }
public string Name { get; set; }
}
Name
属性是一个字符串。
我尝试使用此代码:
var shops = _applicationDbContext.Shops
.Include(x => x.Location).ToList();
var mwc = new Create
{
ShopSL = new SelectList(shops, nameof(Shop.Id), nameof(Shop.Location.Name))
};
但是我得到一个错误:
Object reference not set to an instance of an object
如果我删除 Shop.Location.Name
并将其更改为仅 Shop.Location
,则下拉列表会显示该对象,例如 Namespace.Data.Location
.
我希望下拉列表能够显示位置的名称。
有人能给我指出正确的方向吗?谢谢。
试试这个
var shops = _applicationDbContext.Shops
.Select (i=> new
{
Id=i.Id
Name=i.Location.Name
}).ToList();
var mwc = new Create
{
ShopSL = new SelectList(shops,"Id","Name") ;
};
我是这里的新手。我正在尝试创建一个下拉列表 (SelectList
),它会在我的 ASP.NET MVC 应用程序中显示商店的位置。
Shop
class 有一个 Location
属性 而后者又有一个 Name
属性:
public class Shop
{
public int Id { get; set; }
public Location Location { get; set; }
}
public class Location
{
public int Id { get; set; }
public string Name { get; set; }
}
Name
属性是一个字符串。
我尝试使用此代码:
var shops = _applicationDbContext.Shops
.Include(x => x.Location).ToList();
var mwc = new Create
{
ShopSL = new SelectList(shops, nameof(Shop.Id), nameof(Shop.Location.Name))
};
但是我得到一个错误:
Object reference not set to an instance of an object
如果我删除 Shop.Location.Name
并将其更改为仅 Shop.Location
,则下拉列表会显示该对象,例如 Namespace.Data.Location
.
我希望下拉列表能够显示位置的名称。
有人能给我指出正确的方向吗?谢谢。
试试这个
var shops = _applicationDbContext.Shops
.Select (i=> new
{
Id=i.Id
Name=i.Location.Name
}).ToList();
var mwc = new Create
{
ShopSL = new SelectList(shops,"Id","Name") ;
};