【问题标题】:TextBoxFor with red underline in razor剃刀中带有红色下划线的TextBoxFor
【发布时间】:2015-11-11 08:58:08
【问题描述】:

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

例如:

@model 人物

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

标有红色下划线,c.Name没有智能感知。

但是如果我使用

@Html.TextBox("你好")

没有用红色下划线标记。

这确实让我编译和执行,但它很烦人,因为 lambda 表达式中缺乏智能感知。

给出的错误是:

方法的类型参数不能从用法中推断出来

我尝试过的一些事情

稍微改变调用的结构:

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

然后只有 lambda 表达式是红色的并且错误说:

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

我有

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

使用我的项目的 targetFramework,所有其他不使用 lambda 的助手都不会出现此错误。

可能是什么?

【问题讨论】:

    标签: razor lambda html-helper


    【解决方案1】:

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

    原来“System.Core”引用存在问题(我不知道为什么)。我试图删除并再次添加该引用,但添加时出现错误。因此,我进行了更多搜索,发现即使它在您的项目中不可见,Microsoft 也做出了该引用,因此要再次添加它,您需要自己编辑“* .csproj”。我用 VS Code 打开它(你甚至可以使用记事本),然后添加:

    <Reference Include="System.Core" />
    

    我像其他所有参考一样按字母顺序执行此操作,但我认为这并不重要,在我的情况下是在“System.ComponentModel.Composition”之后。希望这可以帮助你,如果它再次发生在你身上,也许可以帮助其他发现这个问题的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-17
      • 1970-01-01
      • 2012-12-03
      • 2020-03-24
      • 1970-01-01
      • 2020-07-29
      • 2023-01-02
      相关资源
      最近更新 更多