在视图组件中使用来自不同表的数据

时间:2019-06-07 13:10:17

标签: asp.net-core-mvc

我在数据库中有几个表,并且我想在一个视图组件中使用来自不同表的数据。我可以在return view命令中写什么?

public async Task<IViewComponentResult> InvokeAsync()
{
    //return $"{db.}"
    return View();
}

1 个答案:

答案 0 :(得分:1)

您的问题不是很清楚,但是我认为您遇到的情况是:

var foos = await db.Foos.ToListAsync();
var bars = await db.Bars.ToListAsync();

return View(???);

您想传递两个数据集的地方,但是,当然,您只能对该苹果一口气。如果是这样,那么您只需要一个视图模型-一个可以包含这两个数据集的类,因此您可以返回它。

public class MyViewModel
{
    public List<Foo> Foos { get; set; }
    public List<Bar> Bars { get; set; }
}

然后:

var model = new MyViewModel
{
    Foos = await db.Foos.ToListAsync(),
    Bars = await db.Bars.ToListAsync()
};

return View(model);