Подтвердить что ты не робот

CS1003: Синтаксическая ошибка, '>' ожидается в Razor

Я пытаюсь что-то новое (для меня) использовать абстрактный базовый класс для моей модели представления макета.

Проблема в том, что когда я запускаю сайт как есть, он вызывает очень загадочное (для меня) исключение. Что означает это исключение и что я могу сделать для его решения?

Разметка

@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

4b9b3361

Ответ 1

Сравнение и контраст:

Разметка

@model MyApp.Core.ViewModels.LayoutViewModel

Индекс

@model MyApp.Core.ViewModels.Home.IndexViewModel;

Есть еще? Вот ответ:

один из них имеет ;, который не должен быть там

Ответ 2

Я просто добавляю строку дважды и удаляю... проблема решена!

@model MyApp.Core.ViewModels.LayoutViewModel
@model MyApp.Core.ViewModels.Layout_OrOther_Model

Попробуйте скомпилировать, вы получите сообщение об ошибке (только одна модель blah, blah..) Удалите один из них.

@model MyApp.Core.ViewModels.LayoutViewModel

Compile.

Это работает для меня!