0

私は2つのプロジェクトを持つソリューションを持っています:

  • CustomControlsカスタム コントロール (.cs ファイル) があります
  • WebPagesaspx ページがあります

コントロールの 1 つには、次のようなプロパティがあります。

---- 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
}

このプロジェクトは正常にビルドされます。

Web ページ プロジェクトでこのプロジェクトを参照し、コントロール マークアップにプロパティを追加すると、他のすべての列挙型が表示されますが、「インターネット」は IntelliSense に表示されません。

<Platform:searchtextbox id="SearchTextBox3" runat="server" SearchTextBoxMode="internet"   pagename="xyz">
</OnlinePlatform:ecmssearchtextbox>

ブラウザでページを実行すると、次のエラーが表示されます。

'SearchTextBoxMode' プロパティの文字列表現 'internet' からタイプ Platform.CustomControls.Interface.SearchTextBoxModeEnum' のオブジェクトを作成できません。

追加された参照を使用してすべての詳細を確認しました (オブジェクト ブラウザーと ILDASM.exe でプロパティを確認できます)。

4

1 に答える 1

0

問題は enum プロパティです。VS2012 は、列挙型プロパティを持つカスタム コントロールを含むフォームをレンダリングできません。

この問題について Microsoft に約 1,000 回報告しましたが、回答はありませんでした。

于 2016-05-12T10:49:55.707 に答える