Domanda

Sto cercando di passare a Eval Html.RenderPartial dentro ASP.NET Repeater, ma non funziona posso qualsiasi aiuto?

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

dal modo in cui so che posso farlo in altri modi, ma voglio sapere se è fattibile o meno.

È stato utile?

Soluzione

è lo stesso che nel che si aspetta un'espressione che restituisce una stringa, in modo da ottenere questa compilazione è necessario chiamare un metodo che chiama Html.RenderPartial (), quindi restituisce una stringa vuota:
<%
protected string RenderControl(object dataItem) 
{
    Html.RenderPartial("UserControl1", ((MyType) dataItem).Title);
    return "";
}
%>

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

Vorrei solo usare foreach anche se - miscelazione WebForms di associazione dati e MVC rendering parziale è imprevedibile, nella migliore delle ipotesi:

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

Non rendere la vita più dura di quanto ha bisogno di essere ...

Altri suggerimenti

Prova a mettere il tuo RenderPartial all'interno dichiarazione <%# %> come:

<asp:Repeater runat="server">
    <ItemTemplate>
        <%# Html.RenderPartial("UserControl1",Eval("Title")); %>
    </ItemTemplate>
</asp:Repeater>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top