Страница макета не найдена

Я получаю сообщение об ошибке: Страница макета "_Layout" не найдена по следующему пути: "~/Views/Home/_Layout".

Но макет страницы находится по этому пути: "~/Views/Shared/_Layout"

Что это может быть для проблемы?

Я только начал проект, и он выглядит так:

Контроллер:

namespace Testing.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/

        public ActionResult Index()
        {
            return View();
        }
    }
}

Вид индекса:

@model dynamic

@{
    ViewBag.Title = "title";
    Layout = "_Layout";
}

<h2>title</h2>

_ViewStart.cshtml:

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

Обозреватель решений:

Solution Explorer:

Ответы

Ответ 1

Убедитесь, что в вашем файле ~/Views/_ViewStart.cshtml установлен правильный путь:

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

Также, если в ваших представлениях вы переопределяете макет, убедитесь, что для этого макета указан правильный путь. Кроме того, может быть какой-то код на стороне сервера, который устанавливает макет (например, настраиваемые фильтры действий или перегрузка ViewResult, которая позволяет указать макет,...).


UPDATE:

Кажется, вы установили Layout следующим образом:

@{ 
    ViewBag.Title = "title"; 
    Layout = "_Layout"; 
} 

Вам нужно указать расположение в макете как абсолютный путь:

@{ 
    ViewBag.Title = "title"; 
    Layout = "~/Views/Shared/_Layout.cshtml";
} 

Но еще лучший способ - избавиться от этого параметра Layout в вашем представлении Index:

@{ 
    ViewBag.Title = "title"; 
}

Теперь будет использовано значение из вашего _ViewStart.cshtml.