以下は、Presentation という名前のプロジェクト内の私のコードです。また、EntityFramework によって生成されたクラスを持つ MyNamespace および MyNamespace2 (同じソリューション内) という名前の別のプロジェクトもあります。MyNamespace プロジェクトの参照を Presentation プロジェクトに追加しました。
1: <asp:Repeater ID="MyRepeater" runat="server" ItemType="MyNamespace.MyEntityClass" SelectMethod="SelectMethod">
2: <ItemTemplate>
3: <li><a href="<%# Item.Link %>">
4: <%# Item.Text %>
5: </a></li>
6: </ItemTemplate>
7: </asp:Repeater>
属性の後の引用符内で IntelliSense を使用しようとするとItemType
、MyNamespace2 からリストされたクラスのみが取得されますが、MyNamespace からはクラスが取得されません。また、この Web アプリケーションを実行しようとすると、上記のコードを含むページに移動すると、正常にビルドされても次のエラーが発生します。
Compiler Error Message: CS0246: The type or namespace name 'MyNamespace' could not be found (are you missing a using directive or an assembly reference?)
興味深いことに、デザイナ内では、IntelliSense はItem
のプロパティで動作するため、 の型Item
は実際にはデザイナによって正しく解決されました。
ここで何が問題なのですか?ありがとう。