我对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; }
}
}
将索引操作更改为:
public IActionResult Index()
{
var objList = _db.Set<Broadcast>().ToArray();
return View(objList);
}
这里有两个解决方案:
-
在视图中的
@foreach
之外添加@if (Model != null){}
-
使用
IEnumerable<Broadcast> objList = _db.Boradcast.ToList();
取代
IEnumerable<Broadcast> objList = _db.Boradcast;