3

これはコードビハインドで実行できますが、マークアップ自体でこれを実行するための怠惰な方法を探しています。

複雑なプロパティを持つUserControlがあるとします。

public class MyControl : UserControl {
    public Person Someone { get; set; }
}

そして、私はこのコントロールを備えたページを持っています:

<uc1:MyControl id="my1" runat="server" />

コードビハインドではなく、ページマークアップからこのコントロールに人を入れたいと思います。コードビハインドでは、次のようになります。

my1.Someone = GetSomePerson();

やりたいこと:

<uc1:MyControl id="my1" runat="server" Someone="<%= GetSomePerson() %>" />

しかし、それは有効ではありません。これを行う方法について何か提案はありますか?一度に1つのプロパティで実行できると思いますが、より一般的なアプローチを探しています。渡す複雑なオブジェクトは、この例(数十のプロパティ)よりもはるかに大きいため、実行したくありません。可能であっても、マークアップでそれらすべてを個別に定義します。

これを行う魔法の<%$ %>機能があるのではないかと思います。

4

2 に答える 2

1
<uc1:MyControl id="my1" runat="server" />
<% my1.Someone = GetSomePerson(); %>

または、これは明らかにあなたが探していた答えではなかったので...

<uc1:MyControl id="my1" runat="server" someParameter="uniqueId" />

そして、uc1 コントロール内

public string someParameter;
Someone = GetSomePerson(someParameter);
于 2013-03-15T22:18:29.790 に答える