在我的ASP.NET MVC应用程序中,当我试图找到我指定的布局时,我收到服务器错误(HttpException)。我在两个视图中为布局指定相同文件路径,但它在其中一个视图中工作,而在另一个视图中不工作。
以下是Admin/Index.cshtml
顶部的代码:
@model IEnumerable<MultipleUserTesting.Data.User>
@{
ViewBag.Title = "Admin: All Users";
Layout = "~/Views/Shared/_Layout.cshtml";
}
以下是Admin/Edit.cshtml
顶部的代码:
@model MultipleUserTesting.Data.User
@{
ViewBag.Title = "Admin: Edit User: " + @Model.Name;
Layout = "∼/Views/Shared/_Layout.cshtml";
}
以下是错误消息,该消息出现在“编辑”页面上,但在“索引”页面上不:
布局页面&#34;〜/ Views / Shared / _Layout.cshtml&#34;无法在以下路径找到:&#34;〜/ Views / Admin /〜/ Views / Shared / _Layout.cshtml&#34;。
我不明白为什么它试图将指定的路径追加到Views/Admin
,我感到困惑,因为Admin/Index.cshtml
指定了相同的路径并且在那里工作正常。< / p>
这是我的目录结构:
如您所见,两个文件都在同一个文件夹中。是Admin/Index
&#34;特殊&#34;在某种程度上,因为它是一个Index
页?
希望这是足够的信息。如果需要,我可以发布堆栈跟踪。
答案 0 :(得分:0)
您可以尝试删除tild标志
Layout = "/Views/Shared/_Layout.cshtml";
为什么使用tild符号会产生问题还不是很清楚。从正斜杠开始&#34; /&#34;将在考虑应用程序根目录的路径时工作。