MVC 3项目拒绝处理Razor视图请求,显示CS0103错误:名称'model'不存在。

7
我有一个MVC3项目,曾经是一个MVC2项目。我一直在使用IIS Express进行测试开发。 现在,我将其部署到我的机器上的IIS,调整了一些web.config设置,并花了一个小时左右来注册razor build provider,但似乎并没有做对,因为新的项目模板中没有添加该构建提供程序的行代码。 无论如何,每当我进入强类型Razor视图时,就会出现以下错误:
Compiler Error Message: CS0103: The name 'model' does not exist in the current context

Source Error:

Line 1:  @model Cairn.Cartography.Features.Peak

有没有想法是什么问题,我该如何修复它而不需要烧毁这个盒子并寻找我的Windows安装CD呢? :)

使用Web平台安装程序检查目标计算机上是否已安装MVC3。 - Pure.Krome
是的,奇怪的是它确实存在。但是程序集不在GAC中(我不确定它们是否应该在那里?)。也许安装顺序有误,或者可能现在问题已经不是那个了。 - Doug McClean
2个回答

8

我遗漏了:

<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

在我的 web.config 文件的这一部分中:
<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="Cairn"/>
      <add namespace="Cairn.UI.Web"/>
      <add namespace="Cairn.UI.Web.Helpers"/>
    </namespaces>
  </pages>
</system.web.webPages.razor>

我不知道这意味着什么,也不知道为什么它很重要,或者为什么在全新项目的web.config中没有它,但它确实有效。

? 哦,好吧。


现在我可以在适当的IIS中运行,现在我可以在64位进程中运行,现在我可以加载所需的库,一切都水到渠成。 :) - Doug McClean
5
请注意,这是在“Views”目录(或\Areas\Foo\Views\)中的web.config文件。经过一些重构后,我也缺少了那个<host />部分。 - Frank van Eykelen

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接