我最近将项目从.Net 4.0更新到.Net 4.6,并决定从MVC 4更新到MVC 5.我更新了所有NuGet包,所有项目都构建和编译,但是如果我打开任何.cshtml文件,我可以看到ViewBag.Title带有下划线,并显示错误:
错误1无法找到编译动态表达式所需的一种或多种类型。你错过了参考吗?
我还得到另一个错误(请注意下面的图片和下面引用块中的错误是相关的):
错误2方法' System.Web.Mvc.Html.SelectExtensions.DropDownListFor的类型参数(System.Web.Mvc.HtmlHelper,System.Linq.Expressions.Expression>,System.Collections.Generic.IEnumerable ,字符串)'无法从使用中推断出来。尝试明确指定类型参数。
上述错误中的问题是Html.DropDownListFor
无法识别m参数并认为它是动态的,而不是。我在.cshtml页面的顶部有@model CallStatisticsModel
。引用块包含完整的错误描述。
我很清楚像这样的问题之前已经发布(并已经解决)了,我已经尝试过(最近8天)找到解决方案并测试出对其他人有什么用处,但是有相同的问题,但是没有运气。我尝试过,包括:
任何对正确方向的建议,评论或观点都会非常感激,因为这对我来说已经是一个很大的问题了一个多星期了。
提前谢谢大家!
答案 0 :(得分:0)
这个post使得错误和红色下划线在Visual Studio中消失,即使Html.DropDownListFor
仍然认为传递的对象是动态的。
我现在必须解决这个问题。