微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-mvc-3 – 名称’ViewBag’在当前上下文中不存在

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

我有web.config应该是在视图中到位。我已经跟着所有和每个解决方案这个问题in和out stackoverflow。我还通过使用添加可部署依赖项(右键单击mvc项目)部署在我的bin文件夹所有的dll。

在这一点上我不知道还有什么要做。在网上脱颖而出的想法或解决方案。

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

Compiler Error Message: CS0103: The name ‘ViewBag’ does not exist in the current context

Source Error:

Line 1: @{

Line 2: ViewBag.Title = “Home Page”;

Line 3: }

Line 4: <h2>@ViewBag.Message</h2>

Source File: d:\FamilyDermMVC\Views\Home\Index.cshtml Line: 2

解决方法

听起来您在views文件夹的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中:

Assembly 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框架(说4.5到4.6),如果你有旧的引用(指向MVC 5而不是6),显然较旧的文件不能使用与更新的文件(例如,MVC 5 DLL不能用于对比System.Web在4.6)。

原文地址:https://www.jb51.cc/aspnet/254723.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐