cs7003 意外使用未绑定的通用名称

问题描述 投票:0回答:7

我在 Visual Studio 中收到此错误:

错误 CS7003 意外使用未绑定的通用名称 MyProject C:\Users[我的名字]\documents isual studio 2015\项目....\Index.cshtml 1

有问题的文件就在这里(第 1 行错误是对模型声明的引用):

@model MyProject.Models.MyAccount.Details
@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_PrimaryLayout.cshtml";
}
<!-- Page Content -->
<div class="container">
.... more page stuff follows from here

模型类如下:

namespace MyProject.Models.MyAccount
{
    public class Details
    {
        public static Details Select(Company c)
        {
            Details model = new Details();
            model.SomeProperty = "SomeValue";


            return model;
        }

        public String SomeProperty { get; set; }
    }
}

奇怪的是,清理并不能让它消失,重建让它留在那里,我构建/调试得很好。

c# asp.net-mvc-5
7个回答
51
投票

关闭 Visual Studio 并重新启动才能清除错误。后续重建不会产生该错误。


13
投票

只要剪切线

@model
并保存,然后再次粘贴并保存,它应该就消失了。


11
投票

我犯了一个错误,花了我很长时间才发现。 我创建了一个通用方法:

public static T MyMethod<T>() { ... }

我错误地在代码中写了

var something = MyMethod<>();

它已编译,但在运行时抛出错误“意外使用未绑定的通用名称”。

如果您犯过同样的错误,您可以尝试在代码中搜索“<>”...


4
投票

我也收到了同样的消息。 我将 @model 移到第一行,错误消失了。


2
投票

我刚刚在编辑运行 VS 2022 (17.5.0) 的 Net 7 Blazor Server 应用程序时遇到了这个问题。我清理*,关闭 VS,然后删除隐藏的 .vs 文件夹(位于解决方案目录结构的根目录)。问题消失了。

*Mads Clean Solution VS 扩展会在 VS 关闭时删除 obj/bin 文件夹。


1
投票

我在编辑 Blazor Server dotnet 6 应用程序时遇到了这个问题。我使用 Telerik,并在我的

TelerikGrid
组件中为
TItem
指定了一个值。我删除了它(我想我不需要它,因为它可以从
Data
属性推断集合的类型)并且错误消失了。

也许随着 Telerik 组件的更新,某些事情发生了变化。


0
投票

对我来说,它位于 Blazor 应用程序的组件视图内。我这样使用类型参数(省略了一些代码)

@typeparam T

<MyComponentView Current="child" T="@T" />

并收到这样的错误消息(“意外使用未绑定的通用名称”),“child”后带有红色下划线。我的组件渲染不正确。但是当我删除了“T =”@T“”处的“@”符号后,错误消失并且组件被正确渲染。

© www.soinside.com 2019 - 2024. All rights reserved.