Passando a Container.Eval (Html.ReaderPartial) all'interno ASP.NET Ripetitore controllo
-
13-09-2019 - |
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.
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