我在下面有我的查看頁面:
@model ToDoListApp.Models.TodoTable
@{
ViewData["Title"] = "Urgent";
}
@foreach (var item in Model) {
<p>@item.Id</p>
<p>@item.Name</p>
}
模型:
namespace ToDoListApp.Models
{
public partial class TodoTable
{
public int Id { get; set; }
public string Name { get; set; } = null!;
public bool Done { get; set; }
public bool Urgent { get; set; }
}
}
控制器:
[HttpGet]
public IActionResult Urgent(short id)
{
var Task = db.TodoTables.SingleOrDefault(i => i.Id == id);
return View("Urgent", Task);
}
但我收到一個錯誤:

我該如何解決這個問題?
uj5u.com熱心網友回復:
解決方案IEnumerable
您的 ViewModel 不是一個IEnumerable并且foreach回圈需要迭代一個IEnumerable值。
修改@modelasIEnumerable<ToDoListApp.Models.TodoTable>型別:
@model IEnumerable<ToDoListApp.Models.TodoTable>
并確保您的控制器操作將 ViewModel 作為IEnumerable<ToDoListApp.Models.TodoTable>型別回傳。
[HttpGet]
public IActionResult Urgent(short id)
{
IEnumerable<TodoTable> tasks = db.TodoTables
.Where(i => i.Id == id)
.ToList();
return View("Urgent", tasks);
}
單個物件的解決方案
似乎您的控制器操作回傳單個物件,那么您不應該foreach在視圖中使用回圈。
@model ToDoListApp.Models.TodoTable
<p>@Model.Id</p>
<p>@Model.Name</p>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/508223.html
標籤:C# asp.net-mvc asp.net 核心 asp.net-core-mvc
上一篇:真偽值不變
下一篇:根據傳入值更改文本
