Razor 文本框中带有红色下划线

Razor 文本框中带有红色下划线,razor,lambda,html-helper,Razor,Lambda,Html Helper,我有一个aps MVC razor项目,其中razor页面在razor帮助程序中显示错误,而不是使用lambda表达式 例如: @模范人物 @Html.TextBoxFor(c=>c.Name) 用红色下划线标记,c.名称没有IntelliSense 但是如果我使用 @文本框(“你好”) 未使用红色下划线标记 这确实让我可以编译和执行,但这很烦人,因为lambda表达式中缺少intelissense 给出的错误是: 无法从用法推断方法的类型参数 有些事情我试过了 要稍微更改调用的结构,请执行以下

我有一个aps MVC razor项目,其中razor页面在razor帮助程序中显示错误,而不是使用lambda表达式

例如:

@模范人物

@Html.TextBoxFor(c=>c.Name)

用红色下划线标记,c.名称没有IntelliSense

但是如果我使用

@文本框(“你好”)

未使用红色下划线标记

这确实让我可以编译和执行,但这很烦人,因为lambda表达式中缺少intelissense

给出的错误是:

无法从用法推断方法的类型参数

有些事情我试过了

要稍微更改调用的结构,请执行以下操作:

@(Html.TextBoxFor(c=>c.Name))

然后只有lambda表达式为红色,错误为:

无法将lambda表达式转换为类型,因为它不是委托类型

我有

<compilation debug="true" targetFramework="4.0">

对于我项目的targetFramework,以及所有其他不使用lambda的帮助程序,都不会给出此错误


可能是什么

我刚才遇到了这个问题,我知道这可能对你没有任何帮助,因为这是两年后的回复,但在谷歌搜索这是第一个结果,我找到了一个解决方案

事实证明,“System.Core”引用存在问题(我不知道为什么)。我试图再次删除并添加该引用,但添加时出错。所以我搜索了更多,发现微软做了那个引用,即使它在你的项目上不可见,所以要再次添加它,你需要自己编辑“*.csproj”。我用VS代码打开它(你甚至可以使用记事本),然后添加:

<Reference Include="System.Core" />

我像其他参考文献一样按字母顺序排列,但我认为这并不重要,在我的例子中,这是在“System.ComponentModel.Composition”之后。希望这可以帮助你,如果它再次发生在你身上,也许可以帮助任何其他人发现这个问题