Asp.net mvc 4 找不到布局页
我发现错误:在以下路径中找不到布局页面“\u布局”:“~/Views/Home/\u layout”。 但布局页面位于以下路径:“~/Views/Shared/\u布局” 有什么问题吗 我刚开始这个项目,看起来是这样的:Asp.net mvc 4 找不到布局页,asp.net-mvc-4,Asp.net Mvc 4,我发现错误:在以下路径中找不到布局页面“\u布局”:“~/Views/Home/\u layout”。 但布局页面位于以下路径:“~/Views/Shared/\u布局” 有什么问题吗 我刚开始这个项目,看起来是这样的: @{ ViewBag.Title = "title"; Layout = "_Layout"; } 控制器: namespace Testing.Controllers { public class HomeController : Contr
@{
ViewBag.Title = "title";
Layout = "_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>
解决方案资源管理器:
确保在
~/Views/\u ViewStart.cshtml
文件中设置了正确的路径:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
此外,如果在视图中覆盖布局,请确保为此布局指定了正确的路径。除此之外,还可能有一些服务器端代码正在设置布局(例如自定义操作过滤器,或允许指定布局的ViewResult
重载…)
更新: 您似乎设置了如下布局:
@{
ViewBag.Title = "title";
Layout = "_Layout";
}
您需要将布局的位置指定为绝对路径:
@{
ViewBag.Title = "title";
Layout = "~/Views/Shared/_Layout.cshtml";
}
但更好的方法是在索引
视图中取消此布局设置:
@{
ViewBag.Title = "title";
}
现在将使用
\u ViewStart.cshtml
中的值。使用错误的波浪号也会产生此错误
确保使用键盘上的波浪号“~”
如果从书本中复制代码,则波浪号可能是无效字符(请注意,Unicode中有多个波浪号)。部署服务后,我遇到了同样的问题,但无法在本地复制。对我来说,问题是视图的构建操作设置了None。因此,错误是正确的,因为该文件不存在于服务器上,尽管它存在于存储库中 解决此问题的解决方案:
@{
ViewBag.Title = "title";
Layout = "_Layout";
}
索引视图将是这样的
@{
ViewBag.Title = "title";
Layout = "~/Views/Shared/_Layout.cshtml";
}
在你的情况下,我看不到
\u layout.cshtml
。。您必须给出\u layout.cshtml
文件的正确路径。。如果文件与\u ViewStart.cshtml
位于同一视图文件夹中,则无需添加.cshtml
部分。
但是,如果您从另一个文件夹引用它,请确保添加如下.cshtml
部分\u layout.cshtml
因此,您必须添加\u layout.cshtml
所在的正确路径。如下
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
也许您有一个PartialView,现在您希望在ActionResult方法中返回View而不是PartialView。我在回答中列出了其他可能的原因。你都检查过了吗?不应该,我刚开始项目哦,那不可能。如果您在VisualStudio中使用默认模板,您不会在运行应用程序而不做任何更改时告诉我您遇到了此错误,是吗?所以我的问题是:为了打破这个默认模板,您对它做了哪些更改?如果你不提供细节,就很难帮助你。我不能读懂你的心思,这就是问题所在!谢谢生成的代码有Layout=“\u Layout”,这有点令人困惑;再次感谢=)这是真的,尽管可能主要是针对Resharper用户。使用Resharper快捷方式创建新的控制器和视图后,您得到的第一件事是line Layout=“\u Layout”,它立即让我想到,“太好了!它知道在哪里查找模板,知道要查找什么文件扩展名。”但它不知道。所以我也从盒子里得到了OP的错误信息。“~/Views/Home/\u Layout”这是指示性的。在视图中是否有任何类似于@layout=“~/Views/Home/\u layout”的语句会引发此错误?不,是这样的:@{ViewBag.Title=“Title”layout=“\u layout”}会有所帮助。将路径设置为@DarinDimitrov指出的路径应该可以修复ReSharper Add View快捷方式中的一个缺陷,该快捷方式生成了line Layout=“\u Layout”;游戏开始有点晚了,但我在过去重命名布局或更改布局时也遇到了同样的问题。除了用从一开始就引用的正确布局重新创建视图之外,我还没有找到解决此问题的方法。接受的答案有什么问题?不需要重复同样的内容!