41

我有一个 Windows 2003 R2 服务器。我必须运行一个 .NET MVC3 网站。我已经安装了所有的运行时(1,2 和 4),我已经安装了所有的 MVC 框架(3 和 4),但是这个错误并没有消失。

我有应该在视图中的 web.config。我在stackoverflow内外都遵循了这个问题的所有和每一个解决方案。我还通过使用添加可部署依赖项(右键单击 mvc 项目)在我的 bin 文件夹中部署了所有 dll。

在这一点上,我不知道还能做什么。在线没有想法或解决方案。

我已经卸载并重新安装了所有运行时、框架等。在我的本地计算机上它运行得很好(Windows 7)但是当我部署时,我得到了以下错误。

编译器错误消息:CS0103:当前上下文中不存在名称“ViewBag”

源错误:

第 1 行:@{

第 2 行:ViewBag.Title = "主页";

第 3 行:}

第 4 行:<h2>@ViewBag.Message</h2>

源文件:d:\FamilyDermMVC\Views\Home\Index.cshtml 行:2

4

10 回答 10

77

听起来您在Web.Config 视图文件夹中缺少以下内容:

/视图/Web.Config

<?xml version="1.0"?>

<configuration>

  <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"> // <-- this line and contents are important
        <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>

视图通常派生System.Web.Mvc.WebViewPage自在 web.config 中配置的视图。如果您不随应用程序部署 DLL,则基类在以下 DLL 中安装:

汇编 System.Web.Mvc.dll,v4.0.30319

c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll

更新 1

如果您手动从 MVC X 升级到 MVC Y,这需要更改您的目标 .Net Framework(比如 4.5 到 4.6),如果您有旧引用(指向 MVC 5 而不是 6)显然旧文件不能用于结合较新的文件(例如,MVC 5 DLL 不能用于 4.6 中的 System.Web)。

于 2013-03-21T16:45:03.987 回答
5

我看到这是不久前发布的,但我想无论如何我都会在这个问题上添加我的经验。

在创建一个新的 MVC asp.net 项目时,我马上就遇到了同样的错误。我只需单击 BUILD -> Clean Solution,然后单击 Build Solution,它就为我解决了问题。仍然不太清楚为什么错误首先出现,因为它在第一次生成后立即出错。

于 2013-12-03T23:09:54.630 回答
5

我遇到了相同类型的问题(无法识别 html 帮助程序代码)。

我不确定它是如何开始的,但我通过替换以下内容解决了它:

<appSettings>
    <add key="webpages:Enabled" value="false" />
</appSettings>

<appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
</appSettings>

在视图 web.config 文件中。

在这里找到我的解决方案

于 2015-11-30T01:14:09.683 回答
3

有时关闭视图、重建、打开视图会有所帮助。

于 2016-10-14T16:16:31.987 回答
2

无论是否在 web.config 文件中完成了所有正确的配置,我都遇到了这个问题。

发现组件缓存中有一些坏文件,导致 Razor 视图无法识别 ViewBag、Model 和 HtmlHelpers。删除这些文件解决了这个问题(这些文件的好版本是在我下次打开 Visual Studio 时创建的)。

请按照以下路径查找文件:

C:\Users\your.name.here\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache

删除所有四个文件:

  • Microsoft.VisualStudio.Default.cache
  • Microsoft.VisualStudio.Default.catalogs
  • Microsoft.VisualStudio.Default.err
  • Microsoft.VisualStudio.Default.external

我关闭了我的项目,删除了该路径上的文件并重新打开了我的项目,清理了解决方案并再次构建它,问题就解决了

删除临时 ASP.NET 文件也有帮助。C:\Users\your.name.here\AppData\Local\Temp\Temporary ASP.NET 文件。

通过这种方式,您可以修复视图中与智能相关的所有错误(Razor MVC)试试这个,让我知道这对我有用。

谢谢!

于 2019-02-12T10:29:53.730 回答
1

行。我修好了它。我不知道到底是什么修复了它,但我猜这整个“9 英里”修复了它。

我删除了(删除程序)所有 MVC 扩展、工具和你在那里找到的任何东西。

然后重新安装,不删除,.net 运行时。2 和 4。

然后安装了 mvc3 和 mvc4 回来。我去 asp.net 获取最新版本。

然后我在我的笔记本电脑上做了同样的事情。

注意:您需要 Power Shell 2.0 才能在 Windows2003 服务器中安装 MVC4。您需要找到该服务器的特定下载。

一旦我这样做了,回收应用程序池并重新启动服务器。

砰...页面已加载。

我希望这对将来的其他人有所帮助。

谢谢你的回答。

PS:我的感觉是我的笔记本电脑和服务器中分别没有相同版本(或发行版)的 mvc3(或 mvc4)。

于 2013-03-21T21:34:44.117 回答
1

似乎有很多解决方案,每个解决方案的成功率参差不齐。

对我来说,更改Views/web.config文件这一行的版本号是有效的:

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

我将4.0.0.0更改为5.0.0.0,保存,关闭解决方案,重新打开,然后瞧!恼人的红色曲线消失了,智能感知回来了

于 2016-04-12T16:11:33.847 回答
1

Resharper 可能导致它

转到 Visual Studio/Tools/Options/Resharper 然后单击Suspend Now / 然后Resume Resharper,您的一天将不再是灰色的,但您的剃须刀窗口可能会有更多的灰色!

于 2016-08-19T02:04:32.457 回答
0

就我而言,我遇到了这个问题,因为我试图将 MVC 3 项目运行到启用 MVC 2 的平台中。

然后我在我的系统上安装了 MVC 3 问题就消失了

于 2014-03-04T16:46:50.487 回答
0

从http://www.asp.net/mvc/mvc5安装 ASP.NET MVC 5 对 Visual Studio 2012 的支持为我解决了这个问题。

于 2015-01-12T15:07:23.517 回答