4

我在同一个目录中有两个文件,一个 ascx 文件和一个 ascx.cs 文件,其中定义了一个 C# 类。

这是我的 .ascx 文件中的代码

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Test.ascx.cs" 
Inherits="SITE.UI.Controls.Test" %>

这是 Test.ascx.cs 中的代码:

using System;
using System.Web.UI;

namespace SITE.UI.Controls
{
    public partial class Test : System.Web.UI.UserControl
    {


    }
}

但是,每当我尝试构建站点时,我总是会收到此错误:

错误 1 ​​无法加载类型“SITE.UI.Controls.Test”

我确定我一定是在做一些明显错误的事情,但是经过一个多小时的颠簸之后,我一无所获。. .

4

3 回答 3

3

Go into the Web Project properties -> Build settings and change the Output Path to bin\

If that don't work, check this post. Here are a lot of solutions for this problem.

Let me know it when it's fixed or not :)

于 2012-07-10T09:19:47.113 回答
2

我将讲述我的情况以及对我有用的方法。我有一个运行良好的项目。由于未知原因,它得到了编译/构建错误。我在 Controls 文件夹中有用户控件。在处理 Web 处理程序的编译错误后,我的 Controls 文件夹中的每个用户控件都有一组新的错误。我尝试了很多事情,包括删除设计器文件(并创建另一个空文件),我得到的错误是无法加载类型'Name.Of.Class'(在指令行#1 <%@ Control %>)。

我的解决方案是:我添加了另一个名为 OriginalControlName2.ascx 的并行控件。然后将所有内容从@.ascx 复制到@2.ascx 和ascx.cs 相同。到目前为止一切顺利,新页面/控件没有编译错误。然后排除原文件,将#2文件的名称改为原文件名。错误列表归零。

以我所有的经验,我不知道是什么问题,但我得到了修复。

**************更新***************

每次我完成一组文件时,它都会继续到其他文件。我发现指令 <%@ Page/WebHandler/Control/ %> 有一个 CodeBehind 属性。当我将其更改为 CodeFile 时,错误消失了。它比添加新文件和移动所有代码要短得多。

祝你好运。

于 2015-03-07T21:17:18.227 回答
0

当我遇到同样的错误时,只是想添加对我有用的东西。我做了一个 iisreset 解决了这个问题。

于 2015-09-03T12:11:32.457 回答