剃刀中带有红色下划线的 TextBoxFor
TextBoxFor with red underline in razor
我有一个 aps MVC razor 项目,其中的 razor 页面在 razor 助手中显示错误而不是使用 lambda 表达式,
例如:
@model Person
@Html.TextBoxFor(c=>c.Name)
标有红色下划线,c.Name没有intelisense。
但是如果我使用
@Html.TextBox("hello")
没有标出红色下划线。
这确实让我可以编译和执行,但它很烦人,因为 lambda 表达式中缺少智能感知。
给出的错误是:
无法从用法中推断出方法的类型参数
我尝试过的一些东西
稍微改变调用的结构:
@(Html.TextBoxFor(c=>c.Name))
然后只有 lambda 表达式是红色的,错误是:
无法将 lambda 表达式转换为类型,因为它不是委托类型
我有
<compilation debug="true" targetFramework="4.0">
使用我的项目的 targetFramework,所有其他不使用 lambda 的助手都不会出现此错误。
它可以是什么?
我刚才遇到了这个问题,我知道它可能对你一点帮助都没有,因为这个回复是在 2 年后才出现的,但是在 google 中搜索这是第一个结果,我解决了一个解决方案。
原来 "System.Core" 引用有问题(我不知道为什么)。我试图再次删除并添加该引用,但在添加时出现错误。因此,我进行了更多搜索,发现即使它在您的项目中不可见,Microsoft 也进行了该引用,因此要再次添加它,您需要自己编辑“*.csproj”。我用 VS Code 打开它(你甚至可以使用记事本)然后添加:
<Reference Include="System.Core" />
我像其他所有参考文献一样按字母顺序排列,但我认为这并不重要,在我的例子中是在 "System.ComponentModel.Composition" 之后。希望这能在您再次遇到这种情况时对您有所帮助,并可能对其他发现此问题的人有所帮助。
我有一个 aps MVC razor 项目,其中的 razor 页面在 razor 助手中显示错误而不是使用 lambda 表达式,
例如:
@model Person
@Html.TextBoxFor(c=>c.Name)
标有红色下划线,c.Name没有intelisense。
但是如果我使用
@Html.TextBox("hello")
没有标出红色下划线。
这确实让我可以编译和执行,但它很烦人,因为 lambda 表达式中缺少智能感知。
给出的错误是:
无法从用法中推断出方法的类型参数
我尝试过的一些东西
稍微改变调用的结构:
@(Html.TextBoxFor(c=>c.Name))
然后只有 lambda 表达式是红色的,错误是:
无法将 lambda 表达式转换为类型,因为它不是委托类型
我有
<compilation debug="true" targetFramework="4.0">
使用我的项目的 targetFramework,所有其他不使用 lambda 的助手都不会出现此错误。
它可以是什么?
我刚才遇到了这个问题,我知道它可能对你一点帮助都没有,因为这个回复是在 2 年后才出现的,但是在 google 中搜索这是第一个结果,我解决了一个解决方案。
原来 "System.Core" 引用有问题(我不知道为什么)。我试图再次删除并添加该引用,但在添加时出现错误。因此,我进行了更多搜索,发现即使它在您的项目中不可见,Microsoft 也进行了该引用,因此要再次添加它,您需要自己编辑“*.csproj”。我用 VS Code 打开它(你甚至可以使用记事本)然后添加:
<Reference Include="System.Core" />
我像其他所有参考文献一样按字母顺序排列,但我认为这并不重要,在我的例子中是在 "System.ComponentModel.Composition" 之后。希望这能在您再次遇到这种情况时对您有所帮助,并可能对其他发现此问题的人有所帮助。