【发布时间】:2019-04-28 12:33:55
【问题描述】:
我想问我如何访问列表,其中包含剃刀视图中多个表中的不同元素:
public IEnumerable Blogs { get; set; }
public async Task OnGetAsync()
{
Blogs = await _context.Blog
.Select(b => new
{
b.Id,
b.Name,
b.Owner.UserName,
})
.ToListAsync();
}
如何在 Razor 视图中访问它?
当我使用以下内容时:
@foreach (var b in Model.Blogs)
{
<div> @b </div>
}
我将所有对象作为字符串! 但我不能使用 @b.Id 例如,我只是得到方法 (ToString, Equal ...)
如何访问对象属性?例如:@b.Id、@b.Name ...
谢谢
更新: 假设我想用这个:
public async Task OnGetAsync()
{
var Blogs = await _context.Blog
.Select(b => new
{
b.Id,
b.Name,
b.Owner.UserName,
})
.ToListAsync();
}
我如何通过索引访问 var 博客?
【问题讨论】:
-
您可能应该使用具体类而不是匿名类。那么您的
Blogs属性可能是List<SomeType> -
谢谢,但正如你所见,我正在使用“new”来创建自定义选定值的新对象,所以不能使用博客类型的列表
-
我确切地知道您目前在做什么,但是您需要做的是创建一个具有三个属性(Id、Name、OwnerName)的类。而不是说
new {}这是一个 anonymous 类,你会说new SomeType { }这是一个 not 匿名类型。那么您的Blogs属性将是List<SomeType>,因为您非常清楚地调用了ToListAsync() -
忘记我的查询,我需要了解如何在没有第三类的情况下修复它,即使使用新查询,请查看更新
标签: c# asp.net-mvc entity-framework razor-pages