如何在ASP.NET Core 5 MVC中访问模型到主视图的index.cshtml文件



我对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);
}

这里有两个解决方案:

  1. 在视图中的@foreach之外添加@if (Model != null){}

  2. 使用

    IEnumerable<Broadcast> objList = _db.Boradcast.ToList();
    

    取代

    IEnumerable<Broadcast> objList = _db.Boradcast;
    

最新更新