MVC 3中的当前上下文中不存在“模型”的名称

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (24)

我在一个项目中添加了一个cshtml页面。当我试图向它添加以下声明时,我会得到一个错误:“当前上下文中不存在名称‘Model’”。

@model xyz.abc.SomeClass

我在视图文件夹中添加了一个web.config,但这并没有修复它。

我遗漏了什么吗?

提问于
用户回答回答于

我创建一个新区域来组织我的页面时,我遇到了同样的问题。 我的结构看起来有点像: WebProject []区域 [] NewArea []控制器 []意见 []控制器 []意见 Web.config文件 Web.config文件

在WebProject下的Views文件夹中创建的视图工作正常,但在NewArea下创建的视图抛出了以下错误:“名称'模型'在当前上下文中不存在。” 为了解决这个问题,我将WebProject下的Views文件夹中的web.config复制到了NewArea中的Views文件夹中。 见下文。 WebProject []区域 [] NewArea []控制器 []意见 Web.config文件 []控制器 []意见 Web.config文件 Web.config文件 我遇到过这个问题,因为我使用Add - > New Folder手动创建了这个新区域来添加文件夹。 我应该右键单击该项目并选择添加 - >区域。 然后Visual Studio会照顾正确设置区域。

用户回答回答于

更新:如果使用的是新版本的MVC,同样的过程也适用,只需确保在web.config中使用正确的版本号即可<host>排队。

需要包含视图文件夹的默认MVC3web.config。MVC 3有两个:一个位于应用程序的根中,另一个用于视图文件夹。这里有一个包含名称空间的部分。确保你的看起来像这样:

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

我建议创建一个新的MVC 3项目,然后将创建的web.config复制到视图文件夹中。

扫码关注云+社区