【发布时间】:2021-01-11 13:43:21
【问题描述】:
我对 ASP.NET Core 完全陌生,并且遵循 Microsoft 的文档并开发了一个简单的 Web 应用程序。抱歉,如果问题不清楚。
我创建了一个名为Broadcast 的模型、视图和控制器。该模型有一个名为 live 的字段。我想将此模型访问到主视图的 index.cshtml 文件,这是一个单独的视图。
我已尝试在index.cshtml 文件主页视图的顶部包含Broadcast 视图
@model IEnumerable<SideCar.Models.Broadcast>
当我使用@foreach 访问模型时,出现以下错误:
System.NullReferenceException: '对象引用未设置为对象的实例。'
您能否指导一下,我应该学习什么才能将模型访问到不同的视图中?谢谢。
这里是控制器:
using Microsoft.AspNetCore.Mvc;
using SideCar.Data;
using SideCar.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace SideCar.Controllers
{
public class BroadcastController : Controller
{
private readonly ApplicationDbContext _db;
public BroadcastController(ApplicationDbContext db)
{
_db = db;
}
public IActionResult Index()
{
IEnumerable<Broadcast> objList = _db.Boradcast;
return View(objList);
}
}
}
和型号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
namespace SideCar.Models
{
public class Broadcast
{
[Key]
public int Id { get; set; }
public string BroadcastHeading { get; set; }
public string BroadcastDesc1 { get; set; }
public string BroadcastDesc2 { get; set; }
public DateTime ActiveDate { get; set; }
public DateTime ExpiryDate { get; set; }
public string Live { get; set; }
}
}
【问题讨论】:
-
在 `IEnumerable
objList = _db.Boradcast;` 上设置断点并检查 objList是否为空。你应该在你的前端,在你的 foreach 循环之前有一个条件来检查你的列表中是否有任何元素。
标签: asp.net-core