0

我有两个项目的解决方案:

  • 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 中,我可以看到该属性)。

4

1 回答 1

0

问题是枚举属性。VS2012 无法使用具有枚举属性的自定义控件呈现表单。

我已经向 Microsoft 发出了大约 1k 次这个问题的信号,但没有得到任何答复。

于 2016-05-12T10:49:55.707 回答