项目:VB.NET MVC5 w / EF6,MvcScaffolding和BootstrapEditorTemplates
从今天早上开始,我无法获得任何内置MVC助手的智能感知,也无法在 区域中的任意视图中获得自定义智能感知。 注意:我仍然可以看到Html.Encode和Htm.DropDownList(不是DropDownListFor<>)等。
如果我构建它我收到错误,但我仍然可以正确浏览应用程序并查看正确的编辑器和数据。
@ModelType Quotes4YouVB.Request
@Html.EditorFor(Function(model) model.Urgency)
@Html.EditorFor(Function(model) model.Message)
我在其他类似的错误中收到了以下错误。
' ModelType'没有宣布。由于它可能无法访问 保护水平。 ' ViewBag'没有宣布。它可能无法访问 由于其保护水平。 ' EditorFor'不是会员 ' System.Web.WebPages.Html.HtmlHelper&#39 ;. ' ValidationMessageFor'不是一个 &Systems.Web.WebPages.Html.HtmlHelper'。
的成员
我已经尝试了所有常见的嫌疑人:
任何想法?看起来很奇怪它是/ Areas /特有的,它在〜/ Views / X / Y.vbhtml中完全正常
答案 0 :(得分:4)
找到解决方案!我不确定为什么这个特定的东西会导致这个问题,但是和大多数VS问题一样,我不会过多地质疑它,只是要去吧哈哈。
它与 System.Web.WebPages.Razor Host FactoryType 部分有关。
我的〜/ Views / Web.config 包含以下内容:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory,
System.Web.Mvc, Version=5.0.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
...
</namespaces>
</pages>
</system.web.webPages.razor>
特别是版本= 5.0.0.0 部分。因为我刚刚从NuGet重新安装了MVC 5.2.x,所以肯定它应该是5.2.0.0?
我检查了〜/ Areas / [AreaName] /Views/Web.Config中的Web.config,发现它的内容完全相同,只是它读取 Version = 5.2.0.0 :< / p>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
我在两个文件中都尝试过,发现使用5.0.0.0然后所有智能感知都适用于那些视图。
因此,解决方案:修改所有Web.config文件以使用兼容版本的factoryType。 (5.0.0.0适用于我,虽然5.2.0.0不适用)
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<!--<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />-->
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.Optimization" />
</namespaces>
</pages>
</system.web.webPages.razor>
我真的不确定为什么会发生这种情况,如果有人有任何进一步的信息或更好的解决方案来使用5.2.0.0那么请分享:)
答案 1 :(得分:1)
我曾经遇到过这个问题。这解决了我的问题:
在Windows资源管理器中打开项目的输出文件夹(通常是项目根目录下的 bin 文件夹)并删除其中的所有内容。然后关闭解决方案并重新打开它。
希望有所帮助。