c# - 为什么不调用 OnGetAsync?
问题描述
两个类都在同一个文件夹中。索引模型页面中的代码适用于编辑/91 的获取请求,似乎没有返回上下文。此代码在Pages文件夹中不起作用,这很奇怪,因为相同的代码在索引一中起作用
命名空间 CalendarApp.Pages { public class EditModel : PageModel { private readonly CalendarAppContext _context; 私有只读 CalendarAppContext _context2;
public EditModel(CalendarAppContext context, CalendarAppContext context2) { _context = context; _context2 = context2; } public List<Activity> Activities { get; set; } public CurrentDay today { get; set; } public async Task OnGetAsyc(int id) { today = await _context.CurrentDays.FindAsync(id); var activities = from a in _context2.Activities where a.TimeAt.Month == 4 select a; Activities = await activities.ToListAsync(); }}}
解决方案
问题是它不允许迭代null
或null
视为实现的对象IEnumerable
。
一种可能性可能是使用空合并运算符作为回退以对模型进行空枚举。
@foreach (var c in Model.Activities ?? Enumerable.Empty<Acitivty>())
{
// insert code here
}
否则,您可能会尝试确保Model.Activities
始终分配且永远不会为空。
public List<Activity> Activities { get; set; } = new List<Activity>();
甚至可能
public List<Activity> Activities { get; } = new List<Activity>(); // without setter
推荐阅读
- php - PHP - 导出为以新行分隔的制表符
- date - AppleScript:时间格式更改+日历事件
- sql - SQL Server 中 CTE 的列名
- javascript - 识别拖动的项目
- docker - Dockerfile 容器在 Mac 上工作,但在 Windows 上不工作
- javascript - 使用 document.addEventListener 会破坏 document.getElementById
- amazon-web-services - AWS Api-Gateway Lambda 代理终端节点的 Swagger 定义
- email - Haskell Yesod 在特定的星期几和特定的时间运行处理程序
- arrays - Numpy Swap/Substitute NoneType Entry with Numpy Array(即向量)
- azure-cosmosdb - Azure CosmosDb 模拟器未启动