gpt4 book ai didi

asp.net - 仅在发布时找不到类型或命名空间

转载 作者:行者123 更新时间:2023-12-02 15:45:37 24 4
gpt4 key购买 nike

我有一个使用 Visual Studio 2010 和 ASP.Net 4.0 的 Web 解决方案。在此解决方案中,有一个网站和一个类库。

我向网站添加了一个新的用户控件,并且能够构建所有内容。我什至能够使用新控件进行发布。当我尝试在代码的不同部分引用该控件的类名时,就会出现问题。当我这样做时,我仍然能够构建/重建整个解决方案。但是当我尝试发布时,收到错误“找不到类型或命名空间名称。”

当我们发布时,我们总是取消选中“允许此预编译站点可更新”框,并且始终选中“使用固定命名和单页程序集”框。

如果我进行发布并取消选中“使用固定命名和单页程序集”框,它将正常发布。但由于某种原因,我无法在选中该框的情况下发布它,这是我需要做的。

我已经尝试过:

清洁溶液

重新启动 Visual Studio

重新启动计算机

清除.net临时文件夹

重新创建控件

将网站中的所有内容放入命名空间

任何帮助或见解将不胜感激。

谢谢。

编辑:

我明白了。我正在动态添加这个新控件。但我没有意识到它还需要在我正在使用它的页面上注册。注册控件后,一切按预期工作

最佳答案

当您想要动态使用 Web 用户控件时,就像使用文本框、标签等其他 .net 控件一样,您需要遵循以下步骤。

(1) 在控制指令中添加一个 ClassName 属性,如下所示(在 ascx 文件中)

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="CustomControl.ascx.cs"
Inherits="CustomControl" ClassName="CustomControl" %>

注意:确保ClassNameInherits都与CS文件中的类名相同。

(2) 在要动态使用 Web 用户控件的页面上添加 Reference 指令

<%@ Reference Control="~/usercontrol/CustomControl.ascx" %>

注意: Reference 指令与 Register 指令不同。

(3) 现在您可以在页面上的任何位置动态添加用户控件,如下所示

ASP.CustomControl cuCtrl = (ASP.CustomControl)LoadControl("~/usercontrol/CustomControl.ascx");
//add dynamically created custom control to an existing panel or any container control on your page
pnlDemo.Controls.Add(cuCtrl);

注意:您始终可以在 using 中包含 ASP 命名空间;)

此后,即使选中允许此预编译网站可更新选项,您也不应该遇到任何发布问题。

关于asp.net - 仅在发布时找不到类型或命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9022891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com