asp.net-mvc - .net MVC 链接到区域内视图的正确方法
问题描述
我有一个带有几个区域的 .Net MVC 应用程序,其中一个称为 Admin。当我执行 /Admin/Home/Index 时,Admin 区域 Home 控制器中的 Index() 方法将执行并返回正确的 Index.cshtml。到目前为止,一切都很好。
我的问题与 _Layout.cshtml 有关。我希望每个区域和主站点的布局都不同。为此,我已将 _ViewStart.cshtml 添加到我的管理区域的 Views 文件夹中,并且在该 _ViewStart 中我有以下内容:
@{
Layout = "/Areas/Admin/Views/Shared/_Layout.cshtml";
}
同样,到目前为止,一切都很好,但是使用完全合格的路径似乎并不优雅,我不得不认为有更好的方法。
这里问了一个类似的问题:
给出的一个答案说完全合格的路径是要走的路,尽管它没有被 OP 标记为答案。
所以我的问题是这个。是否有必要使用完全限定的路径来引用区域内的视图?是否不可能在某个区域内执行此操作:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
基于正在执行的控制器,视图引擎是否无法解决我想要区域共享文件夹中的视图而不是主站点共享文件夹中的视图?
谢谢,克里斯
解决方案
您在区域内的视图将自动在该区域的视图文件夹中查找文件_ViewStart.cshtml
或_ViewImports.cshtml
文件。在您的情况下,我的建议是将_ViewStart.cshtml
文件放入您区域的视图文件夹中(而不是在他们的共享文件夹中!)并让它引用_Layout
您选择的文件,例如:
_ViewStart.cshtml
@{
Layout = "_Layout";
}
推荐阅读
- android - 无法使用“altbeacon”库 android 监控信标区域
- java - JNI Java使用以对象为参数的DLL函数
- xamarin.ios - 通过 URL 方案将数据从一个应用程序传递到另一个应用程序?
- python - 索引超出范围,同时尝试在 Python 中创建字典
- python - 如何使用 sqlite3 在 python 中为我的两种用户类型提供单独的菜单
- python - 在不更改批量大小的情况下,ai 引擎上的内存不足
- swift - 在 Swift 中使用 Core Graphics 填充多边形
- arrays - 在 mongodb 的数组字段上更新或替换 []
- istio - Istio queryParams 总是返回真值
- delphi - BitmapListAnimation - 如何跳转到选定的帧