![](/img/trans.png)
[英]The name “CommandManager” does not exist in the current context (Visual Studio 2015)
[英]The name 'ViewBag' does not exist in the current context - Visual Studio 2015
我再次开始在 ASP.NET 中进行开发,但在 Visual Studio 中遇到了一个小错误。 我的 .cshtml 文件在使用一些剃刀功能时显示错误。 例如“当前上下文中不存在名称‘ViewBag’”。 这是一张图片:
我正在使用演示项目。 你可以在这里找到这个项目: https : //github.com/Wintellect/Angular-MVC-Cookbook/tree/master/BasicProject
我查看了其他几个线程,大多数建议更新 web.config 文件。 这 2 个配置文件已经存在,因为它是一个非常流行的演示,我认为它包含所有必需的配置。 我当然已经查看了这些配置文件,它们确实包含了建议的解决方案。
其他详情:
提前致谢。
尽管有所有正确的配置,但我还是遇到了这个问题。
原来是组件缓存中有一些坏文件,导致 Razor 视图无法识别 ViewBag、Model 和 HtmlHelpers 。 删除这些文件解决了这个问题(下次我打开 Visual Studio 时会创建这些文件的好版本)。
这些文件位于:
%LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache
删除所有四个文件:
我随后在其他几台开发人员机器上看到了同样的问题,此修复程序很快解决了它。
更新 Views 文件夹中web.config
文件设置中的版本号。
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
如果你已经通过nuget更新了MVC版本,应该是:
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
其他依赖版本也可能需要更新。 MVC 帮助程序和对象的视图中的编译和命名空间问题通常与视图文件夹中的混乱web.config
文件有关。
在 appsettings 中找到“webpages:Version”并将其更新到版本 3.0.0.0。 我的 web.config 有
<add key="webpages:Version" value="2.0.0.0" />
我将其更新为
<add key=”webpages:Version” value=”3.0.0.0″ />
我不小心从Views
文件夹中删除了web.config
,认为这是不必要的。 当我把它放回去时,它开始工作了。
在阳光下乱投医后,原来的东西已经修改了我的System.Web.WebPages.Razor
<sectionGroup>
在/Views/Web.Config
从正确的驼峰System.Web.WebPages.Razor
到全小写system.web.webpages.razor
这最终是我的死亡。
希望这可以帮助其他一些可怜的人解决这个问题......
作为参考,这是正确的条目(对于我的场景)
<sectionGroup name="System.Web.WebPages.Razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
我多次遇到这个问题,最后我发现它发生了,因为视图文件夹应该包含它自己的网络配置
有时在 web.config 的设置中更改版本号是不够的。 出现此问题是因为 Visual Studio 2015 没有 mvc4 工具。
解决方案是将您的项目升级到 MVC 5。它完全解决了问题。 您可以从此页面获得帮助。 它清楚地解释了它。
顺便说一下,Visual Studio 团队宣布他们将在第一次更新时为 Visual Studio 2015 添加 mvc4 支持。
就我而言,我仅在我的 PC 上为一个项目发生了此问题。 我的项目在 VS2012 中运行良好,但是在 VS2017 中打开时出现了这个问题。
对我来说,这里的主要问题是缓存。 我的项目指向 Razor 和 MVC 的较旧缓存版本的 dll,但没有找到在较新版本中添加的功能,例如 ViewBag。 ViewBag 是在 Razor 版本 3 中添加的,但是因为我缓存了 Razor 版本 2,所以它找不到 ViewBag(但它可以找到版本 2 中存在的其他内容)。 但是,像接受的答案一样简单地清除缓存并不能解决我的问题。 我们不得不将配置文件更改为 Razor 的“使用版本 3 而不是 2”,MVC 的“使用版本 5 而不是 4”,然后关闭 VS,删除缓存,打开项目并重新构建。 然后事情就解决了。 下面是更详细的说明。
以下是帮助我解决问题的一系列更改:
以下是我的案例:
<sectionGroup name="system.web.webPages.razor" type="... Version=3.0.0.0 ...">
<section name="host" type="... Version=3.0.0.0 ..." .../>
<section name="pages" type="... Version=3.0.0.0 ..." .../>
</sectionGroup>
...
<host factoryType="... System.Web.Mvc, Version=5.0.0.0 ..." />
...
<pages
...
pageParserFilterType="... Version=5.0.0.0 ..."
pageBaseType="... Version=5.0.0.0 ..."
userControlBaseType="... Version=5.0.0.0 ...">
<controls>
<add assembly="... Version=5.0.0.0 ..." ... />
</controls>
</pages>
(注意:1)你的版本可能不同,我只是告诉我在我的情况下需要做什么 2)为了简洁,我省略了一些带有“...”的东西 3)即使你有像 5.3.2.0 这样的 MVC 版本您仍然应该输入 5.0.0.0,与 Razor 的版本相同 - 在 3.0.0.0 中输入全零)
在主配置文件(顶级配置文件)中,将webPages:version
从 2.0.0.0 更改为 3.0.0.0。
这种变化可能不会影响解决方案,但我仍然会提到它。 确保“Views”文件夹的<namespaces>
部分与项目根目录下的主 .conifg 文件具有完全相同的内容,例如:
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
</namespaces>
%LOCALAPPDATA%\\Microsoft\\VisualStudio\\14.0\\ComponentModelCache
(或任何您的正确路径)中的所有缓存文件,就像 Fenton(当前)接受的答案中建议的那样。 还要删除.scan
文件,即使该答案中没有提到它。 完成后,打开 VS,清理项目并重建它。 现在应该可以正常工作了。 它对我有用。比赛迟到了,但这些解决方案都不适合我。
我升级到 VS 2017,并且该站点工作正常,但是 Visual Studio 编译器破坏了大部分 .cshtml 文件
TLDR;
mysolution.sln 版本错误
所以你想用较新的 VS 创建一个新的解决方案,并将它与你的进行比较并复制版本信息。
完整升级步骤:
我添加了控制器
创建的相应代码:
namespace SampleApp.Controllers
{
public class UserController {
}
}
通过将第 1 步更改为:
创建的相应代码:
namespace SampleApp.Controller {
public class UserController : Controller {
}
}
问题是:我没有从Controller继承我的类
我的错误中的其他消息包括 - 所有这些都来自这个问题:
错误 CS0117:“ModelState”不包含“IsValid”的定义
错误 CS0103:当前上下文中不存在名称“RedirectToAction”
错误 CS0103:当前上下文中不存在名称“视图”
错误 CS0103:当前上下文中不存在名称“ViewBag”
错误 CS0103:当前上下文中不存在名称“Json”
希望此更改可以帮助那些在初始步骤中没有注意的人。
在尝试了这个主题(和其他)的每个解决方案/技巧的至少 90% 之后,我终于解决了它!! 剧透警报,没有任何逻辑痕迹是以下所谓的“解决方案”:在关闭所有选项卡的情况下运行解决方案终于奏效了,当没有其他事情可以让我免于“当前上下文中不存在 ViewBag&Co”...你已经被警告过,没有该死的逻辑!
希望有一天它会帮助某人^^
关闭并再次打开它对我有用。 您可以尝试重新启动visual studio。
我能够通过将以下内容添加到我的 .cshtml 页面顶部来解决该问题
@{ViewBag.Title = "Title";}
重新编译后,我能够删除这一行,错误消失了。
我的观点之一遇到了类似的问题。 就我而言,我只是清理了解决方案并尝试重建它及其工作原理。
我遇到了同样的问题。 我尝试了 Clean、Build 和 Rebuild 解决方案,但对我不起作用。
所以最后我做了如下:
希望它也适用于你们。
在将我的客户端应用程序之一从 ASP MVC 4 升级到 ASP MVC 5 后,我们在 cshtml 页面中遇到了与 Html Helpers 和 ViewBag 相关的设计器错误。
要解决这些问题,请确保执行以下操作:从 Nuget 安装 Asp.NET Web Helpers Library打开项目的 Web.config 并更新绑定,如果它们在安装 Nuget 包时尚未更新,例如
<dependentAssembly>
<assemblyIdentity name=”System.Web.Mvc” publicKeyToken=”31bf3856ad364e35″ />
<bindingRedirect oldVersion=”0.0.0.0-5.2.2.0″ newVersion=”5.2.2.0” />
</dependentAssembly>
在 appsettings 中找到“webpages:Version”并更新到版本 3.0.0.0。 我的 web.config 有
我将其更新为
重新启动 Visual Studio 并重建。 您可能必须删除项目的 bin 文件夹
访问: https : //lajak.wordpress.com/2014/11/16/asp-mvc-5-viewbag-does-not-exist-in-the-current-context/
在尝试了所有其他方法并感到有点沮丧之后,我将 MVC5 应用程序上的 .NET 框架从 4.5 升级到 4.5.2。 不知何故,它解决了我的问题。 希望能帮助到你。
我解决了替换 web.config
<add key="webpages:Enabled" value="false" />
和
<add key="webpages:Enabled" value="true" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.