Mic*_*juh 86 c# asp.net-mvc web-config visual-studio razor
我开始在ASP.NET中再次开发,我在Visual Studio中遇到了一个小错误.使用一些剃刀功能时,我的.cshtml文件显示错误.例如,"当前上下文中不存在名称'ViewBag'".这是一张图片:
我正在使用一个演示项目.你可以在这里找到这个项目:https://github.com/Wintellect/Angular-MVC-Cookbook/tree/master/BasicProject
我查看了其他几个线程,大多数建议更新web.config文件.这两个配置文件已经存在,因为它是一个非常流行的演示,我认为它具有所有必需的配置.我当然查看了这些配置文件,确实包含了建议的解决方案.
其他详情:
提前致谢.
Fen*_*ton 106
尽管拥有所有正确的配置,但我遇到了这个问题.
事实证明,组件缓存中存在一些不良文件,导致Razor视图无法识别ViewBag,Model和HtmlHelpers.删除这些文件解决了这个问题(下次打开Visual Studio时创建了这些文件的好版本).
这些文件位于:
%LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache
Run Code Online (Sandbox Code Playgroud)
删除所有四个文件:
我后来在其他几台开发者机器上看到了同样的问题,这个解决方案很快就解决了.
Ben*_*son 38
更新web.configViews文件夹中文件设置中的版本号.
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
Run Code Online (Sandbox Code Playgroud)
如果您通过nuget更新了MVC版本,应该是:
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
Run Code Online (Sandbox Code Playgroud)
其他依赖版本也可能需要更新.View for MVC帮助程序和对象中的编译和命名空间问题通常与web.configView文件夹中的混乱文件有关.
Dam*_*een 18
在appsettings中找到"webpages:Version"并将其更新到3.0.0.0版.我的web.config了
<add key="webpages:Version" value="2.0.0.0" />
Run Code Online (Sandbox Code Playgroud)
我把它更新到了
<add key=”webpages:Version” value=”3.0.0.0? />
Run Code Online (Sandbox Code Playgroud)
jbw*_*ech 11
在阳光下乱投医后,原来的东西已经修改了我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">
Run Code Online (Sandbox Code Playgroud)
有时在 web.config 的设置中更改版本号是不够的。出现此问题是因为 Visual Studio 2015 没有 mvc4 工具。
解决方案是将您的项目升级到 MVC 5。它完全解决了问题。您可以从此页面获得帮助。它清楚地解释了它。
顺便说一下,Visual Studio 团队宣布他们将在第一次更新时为 Visual Studio 2015 添加 mvc4 支持。
我多次面对这个问题,最后我发现它发生了,因为视图文件夹应该包含它是自己的Web配置
就我而言,此问题仅发生在我的电脑上的一个项目上。我的项目在 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>
Run Code Online (Sandbox Code Playgroud)
(注:1)您的版本可能不同,我只是告诉我的情况需要做什么 2)为了简洁起见,我省略了一些带有“...”的内容 3)即使您的 MVC 版本类似于 5.3.2.0您仍然应该输入 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>
Run Code Online (Sandbox Code Playgroud)
%LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache(或任何正确的路径),就像芬顿(当前)接受的答案中所建议的那样。也删除.scan文件,即使该答案中没有提及。完成后,打开 VS,清理项目并重建它。现在应该可以正常工作了。这对我有用。| 归档时间: |
|
| 查看次数: |
81961 次 |
| 最近记录: |