我有两个项目的解决方案:
CustomControls
具有自定义控件(.cs 文件)WebPages
有aspx页面
其中一个控件具有如下属性:
---- 在 Platform.CustomControls
命名空间中定义 --------
[Category("Search Mode"),
DefaultValue(SearchTextBoxModeEnum.global),
Personalizable(PersonalizationScope.Shared),
TypeConverter("String"),
WebBrowsable(true),
WebDisplayName("SearchTextBoxMode"),
WebDescription("SearchTextBoxMode")]
public SearchTextBoxModeEnum SearchTextBoxMode
{
set;
get;
}
---- 在 Platform.CustomControls.Interface
命名空间中定义 --------
public enum SearchTextBoxModeEnum
{
global,
forms,
products,
internet
}
该项目构建成功。
当我在我的网页项目中引用这个项目并在控件标记中添加属性时,所有其他枚举都会出现,但智能感知中没有出现“互联网”。
<Platform:searchtextbox id="SearchTextBox3" runat="server" SearchTextBoxMode="internet" pagename="xyz">
</OnlinePlatform:ecmssearchtextbox>
在浏览器中运行页面时出现错误:
无法从 'SearchTextBoxMode' 属性的字符串表示 'internet' 创建 Platform.CustomControls.Interface.SearchTextBoxModeEnum' 类型的对象。
我使用添加的引用检查了所有详细信息(在对象浏览器和 ILDASM.exe 中,我可以看到该属性)。