我正在研究ASPNETZERO .NET Core模板。我想用tiles来设置一个简单的索引视图,而不是使用可数据或Jtable网格。我正在学习docs 这里中的示例。我复制了app服务索引方法的代码。我复制了视图模型代码。然后,我将代码应用到我的索引视图CSHTML。一旦我写了前面的代码行并放入模型。intellisense没有显示任何内容。我能够编译代码,但是当我运行该页面时,我会得到如下所示的错误消息。
foreach语句不能对“CompanyIndexViewModel”类型的变量进行操作,因为“CompanyIndexViewModel”不包含“GetEnumerator”的公共定义
我需要帮助解决这个错误。另外,如果有人有一个代码示例,说明我如何使用tiles显示一个简单的索引视图,而不是使用网格,请进行共享。我有css/html的瓷砖外观工作。我能够创建一个应用程序服务,返回我的实体的列表对象。我只是想不出如何让它在index.cshtml页面和相关的index.js上工作。我已经做了很多次以外的ABP模板。我正在努力使这项工作在ABP模板的背景下进行。
这是视图模型代码。
[AutoMapFrom(typeof(ListResultDto<CompanyListDto>))]
public class CompanyIndexViewModel
{
public CompanyIndexViewModel(ListResultDto<CompanyListDto> output)
{
output.MapTo(this);
}
}发布于 2017-12-10 00:37:28
您需要继承ListResultDto<CompanyListDto>,如这里所示
[AutoMapFrom(typeof(ListResultDto<CompanyListDto>))]
public class CompanyIndexViewModel : ListResultDto<CompanyListDto>
{
public CompanyIndexViewModel(ListResultDto<CompanyListDto> output)
{
output.MapTo(this);
}
}然后,您可以访问Model.Items中的Index.cshtml,如这里所示
@foreach (var company in Model.Items)
{
// ...
}发布于 2017-12-09 21:43:01
我想出了解决我的问题的办法。
我用下面的代码更新了视图模型。
[AutoMapFrom(typeof(ListResultDto<CompanyListDto>))]
public class CompanyIndexViewModel
{
public IReadOnlyList<CompanyListDto> Companies { get; }
public CompanyIndexViewModel(IReadOnlyList<CompanyListDto> companies)
{
Companies = companies;
}
}然后,我将控制器代码更新到下面。
var output = _companyAppService.GetCompanyList(input);
var model = new CompanyIndexViewModel(output.Items);
return View(model);我通过阅读本文这里获得了这个解决方案
https://stackoverflow.com/questions/47732138
复制相似问题