“ViewBag”这个名字不会在目前情况下存在

问题描述 投票:37回答:10

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

我有一个应该是在地方的意见web.config中。我按照所有各进出计算器的解决这个问题。我也部署在我的bin文件夹中使用添加可部署的依赖所有DLL(右键单击MVC项目)。

在这一点上我不知道自己还能做些什么。跑出去的想法和解决方案在线。

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

编译器错误信息:CS0103:“ViewBag”这个名字不会在目前情况下存在

源错误:

1号线:@ {

2号线:ViewBag.Title = “主页”;

3号线:​​}

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

源文件:d:\ FamilyDermMVC \查看\首页\ Index.cshtml行:2

asp.net-mvc-3 razor windows-server-2003
10个回答
74
投票

听起来像是你错过了在视图文件夹中的Web.Config如下:

/views/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>

观点典型地由在web.config配置System.Web.Mvc.WebViewPage派生。如果不与应用程序部署DLL,基类是安装在以下DLL:

大会System.Web.Mvc.dll程序,v4.0.30319

C:\ Program Files文件(x86)的\微软ASP.NET \ ASP.NET MVC 3个\组件\ System.Web.Mvc.dll程序

更新1

如果手动从MVC X到MVCŸ升级,这需要改变你的目标.Net框架(比如4.5〜4.6),如果你有旧引用了明显的旧文件不能使用(点MVC 5,而不是6)与较新的文件相结合(例如MVC 5的DLL不能针对的System.Web在4.6使用)。


0
投票

无论其在web.config文件中做了所有正确配置的我有这个问题。

发现是在组件缓存一些不好的文件,防止剃刀观点,不认识ViewBag,型号和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 \应用程序数据\本地的\ Temp \临时ASP.NET文件。

这样,您就可以解决所有相关的视图中的智能错误(剃刀MVC)尝试了这一点,让我知道这对我的作品。

谢谢!


5
投票

我看到这张贴一段时间回来,但认为我想补充我的经验,这个问题无论如何。

在创建一个新的MVC asp.net项目我得到同样的错误了蝙蝠的权利。我简单地点击BUILD - >清理解决方案,然后生成解决方案,它解决了这一问题对我来说。还是不明白为什么错误首先来到约但正如它出错了之后首先产生的。


5
投票

我有同样类型的问题(HTML助手代码不被认可)。

我不知道它是如何开始,但我通过更换以下解决它:

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

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

在意见web.config文件。

发现我的解决方案here


1
投票

好。我修好了它。我不知道到底是什么固定的,但我想这整个“九里”修复它。

我删除(删除程序)所有MVC扩展工具,无论您发现有。

然后重新安装,无需拆卸,.NET运行库。 2和4。

然后安装MVC3和mvc4回来。我去到ASP.NET的最新版本。

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

注意:您将需要电源外壳2.0才能安装MVC 4在Windows 2003服务器。你需要找到该服务器的特定下载。

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

砰...加载页面。

我希望这有助于在未来的其他人。

谢谢您的回答你。

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


1
投票

似乎有很多解决方案以及各自的成功率参差不齐。

对我来说,在这条线的次数的改变版本号/ 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到,保存,关闭该解决方案,重新打开,然后瞧!恼人的红色波浪线是gones和智能感知返回


1
投票

ReSharper的是可能导致它

去到Visual Studio /工具/选项/ ReSharper的,然后点击立即挂起/恢复,然后ReSharper的,你的日子将不再是灰色的,但可能你的剃须刀窗口将有更灰色的!


0
投票

在我来说,我得到了这个问题,因为我试图运行一个MVC 3项目进入MVC 2启用平台。

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


0
投票

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


0
投票

有时,关闭视图,重建,打开视图可帮助。

© www.soinside.com 2019 - 2024. All rights reserved.