我有两个项目的解决方案:
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
}
此项目成功构建。
当我在我的网页项目中引用此项目并在控件标记中添加该属性时,会显示所有其他枚举,但智能感知中不会显示“internet”。
<Platform:searchtextbox id="SearchTextBox3" runat="server" SearchTextBoxMode="internet" pagename="xyz">
</OnlinePlatform:ecmssearchtextbox>
我在浏览器中运行页面时遇到错误:
无法从“SearchTextBoxMode”属性的字符串表示形式“internet”创建Platform.CustomControls.Interface.SearchTextBoxModeEnum类型的对象。
我使用添加的引用检查了所有细节(在对象浏览器和ILDASM.exe中,我可以看到该属性)。
答案 0 :(得分:0)
问题是枚举属性。 VS2012无法使用具有枚举属性的自定义控件呈现表单。
我已经向微软发出了大约1k次的问题,没有回答。