我有一个基本的 MVC 项目,我为它添加了一个区域,用于管理类型的功能,称为......Admin。
然后因为我希望我的管理区域在某种程度上独立于站点的其余部分,因为用户不需要的管理程序集、功能等。
然后我将 _ViewStart.cshtml 添加到管理区域的根目录。
@{
Layout = "~/Areas/Admin/Views/Shared/_Layout.cshtml";
}
当然,然后我在 Admin/Views/Shared 文件夹中添加了 _Layout.cshtml。
加载公共(public)站点可以很好地加载管理区域:
'ASP._Page_Areas_Admin__ViewStart_cshtml' does not inherit from 'System.Web.WebPages.StartPage'
谷歌搜索我发现很多人选择让主站点 _Layout 也为他们的区域服务。
这与我想要的相反......但我的想法可能是错误的?
我也看了这篇文章:
ASP.Net MVC4 Root cshtml and "does not inherit from 'System.Web.WebPages.WebPage"
并添加了一个 web.config,它是主分支 View 文件夹的精确副本到 Admin/Views 文件夹,但无济于事。
那么我为管理区域设置 _Layout 是否违反了某些惯例?
如果不是那么我错过了什么..我的意思是我理解错误但认为将 web.config 添加到程序集会添加所需的命名空间?
最佳答案
我也遇到了这个问题。错误是因为我将 _ViewStart.cshtml 文件放在区域的区域根文件夹中,而不是 Areas > [Area Name] > Views 文件夹中。将其移动到 Areas> [Area Name] > Views 文件夹后,一切都应该按预期工作,只要其他所有配置都正确。
关于c# - 新的 MVC Area _layout 不继承....System.Web.WebPages.StartPage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36747199/