我有一个部分视图文件,它接收保存在views目录之外的@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
答案 0 :(得分:3)
此异常是cshtml文件的编译错误。视图无法访问模型类型。如果检查解决方案资源管理器,则会有两个web.config文件,一个位于Views文件夹中,另一个位于根级别。
对它进行排序的一种方法是将Views / web.config复制到App_Data。
答案 1 :(得分:2)
App_Data 是ASP.NET中的一个特殊目录,它应该存储XML文件/ mdf文件等数据文件来存储数据。它也限制访问。
您不应该在该文件夹中放置任何UI图层问题(视图)。 Asp.NET MVC有一个UI层的约定,即MyPartialViews
目录。因此,请使用该位置来保留您的观点。
如果绝对需要,您可以将视图文件放在应用程序的任何位置(除了那些系统目录)。例如,您可以创建一个名为~/Views
的目录并将您的局部视图放在那里并参考完整通往那条路。需要记住的重要一点是,您需要在该文件夹中安装一个Web配置(从pageBaseType
复制一个并将其放在那里)。 Web配置包含许多必需元素,包括BLOCKED
所有视图