【发布时间】:2022-01-06 04:43:29
【问题描述】:
我想渲染数据以从包含列表的模型中查看
交易模型:
public class Transaction
{
public int AccountId { get; set; }
public string AccountName { get; set; }
public string Type { get; set; }
public DateTime Date { get; set; }
public int Amount { get; set; }
}
事务视图模型:
public class TransactionViewModel
{
public List<Transaction> Transactions { get; set; }
}
控制器:
public IActionResult Index()
{
// var dataset = new DataSet();
using var connection = new NpgsqlConnection(connString);
connection.Open();
/* getting account name, type, date, amount from transaction and account table*/
var sql = @"SELECT *
FROM account as a
INNER JOIN transaction AS t
ON a.account_id = t.account_id";
using var sqlCommand = new NpgsqlCommand(sql, connection);
NpgsqlDataReader reader = sqlCommand.ExecuteReader();
List<Transaction> transaction_Lists = new List<Transaction>();
if (reader.HasRows)
{
while (reader.Read())
{
transaction_Lists.Add(new Transaction
{
AccountId = Convert.ToInt32(reader["account_id"]),
AccountName = Convert.ToString(reader["account_name"]),
Type = Convert.ToString(reader["type"]),
Amount = Convert.ToInt32(reader["amount"]),
});
}
}
return View(transaction_Lists);
}
查看:
@using System.Data;
@model MyViewModel;
@foreach(var item in Model)
{
<tr>
<td>@Model.AccountName</td>
</tr>
}
在视图中我收到错误消息:“foreach 语句无法对 '' 类型的变量进行操作,因为 '' 不包含 'GetEnumerator' 的公共定义”
为什么我不能循环播放?
【问题讨论】:
-
无法知道,因为您没有发布
MyViewModel的代码(这很可能无法枚举)。请查看minimal reproducible example 发布代码指南和edit 相应问题。 -
感谢您的帮助,` public class TransactionViewModel { public List
Transactions { get;放; } }`
标签: c# list asp.net-core-mvc viewmodel .net-6.0