我们的 Web 应用程序有一个使用标记、代码隐藏和设计器文件设置的控件,如下所示:
标记
<%@ Control Language="VB" AutoEventWireup="false"
Inherits="NewNameSpace.Controls.generic_selector" Codebehind="generic-selector.ascx.vb" %>
出于某种原因,虽然它之前在默认命名空间中工作,但当我们将它移动到新命名空间时,我们现在得到一个解析器错误:
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.
Parser Error Message: Could not load type 'NewNameSpace.Controls.generic_selector'.
附录 :我确实将标记、代码隐藏和设计器文件移动到了新的命名空间。似乎没有帮助。
该项目仍然正确构建。还有什么我们需要做的吗?
更新 :
本周再看一遍,这是我的猜测。默认情况下创建控件时,它会进入 Global.NameOfProject.NameOfControl。
也许新控件现在在 Global.NameOfProject.NewNameSpace.Controls 中?
更新:
该控件似乎部分进入命名空间 Global.NameOfProject.NewNameSpace.Controls。问题是,不清楚如何将整个类移动到新的命名空间。我尝试了各种标记更改,但似乎没有一个能坚持下去——只有默认命名空间似乎没有问题。
所以我的问题仍然存在:如何将 Web 用户控件移动到不同的命名空间?
最佳答案
您还需要更改代码隐藏类上的命名空间。
打开 generic-selector.ascx.vb
文件并确保 generic-selector
type 被包裹在属性命名空间中,如下所示:
Namespace NewNameSpace.Controls
Class generic-selector
End Class
End Namspace
关于asp.net - 将 Web 用户控件移动到不同的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1407927/