ASP MVC 5 - 视图文件夹外的部分视图文件

ASP MVC 5 - Partial View File Outside of Views Folder

我有一个部分视图文件,它接收保存在视图目录之外的@model - 实际上存储在 app_data 中。

但是我得到错误:

The name 'model' does not exist in the current context
Source File: ...\app_data\_DefaultLayout.cshtml

下面是我的代码:

 @Html.Partial("~/app_data/_DefaultLayout.cshtml"), Model)

默认布局如下:

 @using System.Web.Mvc
 @using System.Web.Mvc.Html
 @model MyApp.ViewModels.CreateCaseViewModel

 // some html and razor code

此异常是 cshtml 文件的编译错误。该视图无权访问模型类型。如果您检查您的解决方案资源管理器,有两个 web.config 文件,一个在 Views 文件夹中,一个在根级别。

一种排序方法是将 Views/web.config 复制到 App_Data.

App_Data是ASP.NET里面的一个特殊目录,应该是用来存放数据文件,比如XML文件/mdf文件来存放数据。它也有访问限制。

您不应在该文件夹中放置任何 UI 图层问题(视图)。 Asp.NET MVC 对您的 UI 层有一个约定,即 ~/Views 目录。因此,请使用该位置来保留您的观点。

如果绝对需要,您可以将您的视图文件放在应用程序中的几乎任何位置(除了那些系统目录),例如,您可以创建一个名为 MyPartialViews 的目录并将您的部分视图放在那里并参考完整的路径。要记住的重要一点是,您需要在该文件夹中有一个 Web 配置(从 ~/Views 复制一个并将其放在那里)。 Web 配置有许多需要的元素,包括 pageBaseType for all views