2

ASP.NET Repeater 内で Eval を Html.RenderPartial に渡そうとしていますが、機能しません。

<asp:Repeater runat="server">
            <ItemTemplate>
                <% Html.RenderPartial("UserControl1",Eval("Title")); %>
            </ItemTemplate>
</asp:Repeater>

ちなみに、他の方法でできることは知っていますが、それが可能かどうか知りたいです。

4

2 に答える 2

5
は、文字列を返す式が必要であるという点で同じであるため、このコンパイルを取得するには、Html.RenderPartial() を呼び出してから空の文字列を返すメソッドを呼び出す必要があります。
<%
保護された文字列 RenderControl(オブジェクト dataItem)
{
    Html.RenderPartial("UserControl1", ((MyType) dataItem).Title);
    戻る "";
}
%>

... <%# RenderControl(Container.DataItem) %> ...

ただし、foreach を使用するだけです。WebForms のデータ バインディングと MVC の部分レンダリングを混在させることは、せいぜい予測できません。

<% foreach (MyObject o in data) { Html.RenderPartial("UserControl1", o.Title); } %>

必要以上に人生を苦しめないで...

于 2009-07-15T01:06:30.790 に答える