Я пытаюсь что-то новое (для меня) использовать абстрактный базовый класс для моей модели представления макета.
Проблема в том, что когда я запускаю сайт как есть, он вызывает очень загадочное (для меня) исключение. Что означает это исключение и что я могу сделать для его решения?
Разметка
@model MyApp.Core.ViewModels.LayoutViewModel
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>@Model.Title</title>
</head>
<body>
<div>
@RenderBody()
</div>
</body>
</html>
Индекс
@model MyApp.Core.ViewModels.Home.IndexViewModel;
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h1>@Model.Body</h1>
LayoutViewModel
namespace MyApp.Core.ViewModels
{
public abstract class LayoutViewModel
{
public string Title { get; set; }
}
}
IndexViewModel
namespace MyApp.Core.ViewModels.Home
{
public class IndexViewModel : LayoutViewModel
{
public string Body { get; set; }
}
}
контроллер
[HttpGet]
public ActionResult Index()
{
var model = new IndexViewModel
{
Title = "Hello World",
Body = "Hello World"
};
return View(model);
}
И исключение
Ошибка компиляции Описание: Произошла ошибка во время компиляция ресурса, необходимого для обслуживания этого запроса. пожалуйста просмотрите следующие конкретные сведения об ошибке и измените источник кода надлежащим образом.
Сообщение об ошибке компилятора: CS1003: ошибка синтаксиса, ' > ' ожидается
Ошибка источника:
Line 27: Line 28: Line 29: public class _Page_Views_Home_Index_cshtml : System.Web.Mvc.WebViewPage<FutureStateMobile.Core.ViewModels.Home.IndexViewModel;> { Line 30: Line 31: #line hidden
Исходный файл: c:\Users\Chase\AppData\Local\Temp\Temporary ASP.NET Файлы\корень\b314e0d7\36f522db\App_Web_index.cshtml.a8d08dba.yr7oemfz.0.cs Линия: 29