Это моя первая попытка реализации MVC, и я застрял, пытаясь устранить ошибку ссылки на объект.Данные не поступают из модели в модель представления, и я не могу понять, почему.Я пытаюсь передать данные на страницу Home (Index), но получаю «Ссылка на объект не установлена на экземпляр объекта».ошибка, потому что @model не заполняется.Я не могу понять, где разрывается цепь.Я попытался добавить соответствующие биты кода ниже.
Модель - Model / blogpost.cs, и EF создал соответствующую таблицу.Я добавил одну строку данных для тестирования.
public class BlogPosts
{
public int Id { get; set; }
[Required]
public string Title { get; set; }
[Required]
public string ShortPost { get; set; }
[Required]
public string Post { get; set; }
[Required]
public string Tags { get; set; }
[Required]
public DateTime Updated { get; set; }
}
контроллером является Controller / HomeController.cs,
public ActionResult Index()
{
var viewModel = new IndexViewModel();
return View("Index",viewModel);
}
модель представления - View / IndexViewModel.cs
public class IndexViewModel
{
public BlogPosts Blog { get; set; }
}
, который используется View / Index.cshtml.Вот фрагмент HTML, пятая строка снизу - это первое использование @model, и это NULL-объект:
<!DOCTYPE html>
@model congresssucks_asp.ViewModels.IndexViewModel
@{
ViewBag.Title = "BlogPosts";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" type="text/css" href="~/Content/normalize.css" />
<link rel="stylesheet" type="text/css" href="~/Content/grid.css" />
<link rel="stylesheet" type="text/css" href="~/Content/style.css" />
<link rel="stylesheet" type="text/css" href="~/Content/queries.css" />
<link href="https://fonts.googleapis.com/css?family=Lato:100,300,300i,400" rel="stylesheet">
<meta charset="utf-8" />
<title>Congress Sucks!</title>
</head>
<body>
<section class="section-blog js-section-blog" id="latest">
<div class="row">
<h2>Most Recent Posts</h2>
</div>
<div class="row">
<div class="col span-1-of-4 box">
<div class="blog-box">
<h3>@Model.Blog.Title </h3>
<div class="blog-date">@Model.Blog.Updated</div>
<p>
@Model.Blog.ShortPost
</p>
Это приводит к этой ошибке:
Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
Source Error:
Line 25: <div class="col span-1-of-4 box">
Line 26: <div class="blog-box">
Line 27: <h3>@Model.Blog.Title </h3>
Line 28: <div class="blog-date">@Model.Blog.Updated</div>
Line 29: <p>
Я установил точку останова на контроллере, и объект viewmodel выглядит как нулевой.
Точка останова