温馨提示:本文翻译自stackoverflow.com,查看原文请点击:asp.net mvc 4 - The layout page could not be found

asp.net mvc 4 - 找不到版面页面

发布于 2020-03-30 21:31:19

我收到错误消息:在以下路径中找不到布局页面“ _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";
}

解决方案资源管理器:

解决方案资源管理器:

查看更多

提问者
anleon
被浏览
14
Darin Dimitrov 2013-02-18 02:11

确保在~/Views/_ViewStart.cshtml文件中设置了正确的路径:

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

另外,如果在您的视图中您要覆盖布局,请确保为此布局指定了正确的路径。除此之外,可能还有一些服务器端代码正在设置布局(例如自定义操作过滤器,或者ViewResult允许指定布局重载,...)。


更新:

您似乎已按以下方式设置布局:

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

您需要将布局的位置指定为绝对路径:

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

但是,更好的方法是在Index视图中摆脱此Layout设置

@{ 
    ViewBag.Title = "title"; 
}

现在,_ViewStart.cshtml将使用您的值

发布
问题

分享
好友

手机
浏览

扫码手机浏览