这也许是一个Intellisense问题,因为它仅出现在upload_max_filesize
文件中,并且代码可以正常编译/执行。我不确定。
我最近从VS2010迁移到VS2017,并且正在尝试使用MVC3项目。一切运行正常,但我遇到了与MVC语法相关的多个Intellisense错误。例如,在“视图”>“共享”> _Layout.cshtml中:
post_max_size
给出错误:
.cshtml
这是通过“视图”>“首页”>“ Index.cshtml”设置的:
<title>@ViewData["Title"]</title>
在尝试使用The name 'ViewData' does not exist in the current context
时,也会类似地发生这种情况:
@{
ViewData.Title = "Dashboard"; // intellisense error also shows here
}
我不确定我的dll引用或Web配置是否存在某种问题。我已验证存在以下dll引用:
@Html.Partial
在我的Views / web.config文件中:
'HtmlHelper' does not contain a definition for 'Partial' and no extension method 'Partial' accepting a first argument of type 'HtmlHelper' could be found (are you missing a using directive or an assembly reference?)
还有我的根web.config文件:
System.Web.Mvc - Version 3.0.0.0
System.Web.Razor - Version 2.0.0.0
System.Web.WebPages - Version 1.0.0.0
System.Web.WebPages.Razor - Version 1.0.0.0
答案 0 :(得分:0)
尽管不能完全确定为什么会这样,但是您应该考虑使用ViewBag
来代替ViewData
上的动态包装。
ViewBag.Title = "Dashboard"; // in your action method
在您的查看代码中
@ViewBag.Title
答案 1 :(得分:0)
最终使用了摆在here上的解决方案(即使是VS2013):
MS表示,对于VS2013,“ Razor的智能感知(CSHTML和VBHTML)文件仅限于HTML标记。”
但是,如果在每个.cshtml中添加这两行,则Intellisense将再次适用于VS2013中的MVC3:
@using System.Web.Mvc.Html
@inherits System.Web.Mvc.WebViewPage<dynamic>
您可以输入模型的类型,而不是动态的。
答案 2 :(得分:0)
我最近从VS2017迁移到VS2019。我收到以下错误: “名称'ViewData'当前不存在”
我重新运行了Visual Studio启动器,然后单击“修改”。 然后问题解决了!
希望这个答案对您有所帮助。