2009-07-14 8 views
2

Ich versuche Eval an Html.RenderPartial in ASP.NET Repeater zu übergeben, aber es funktioniert nicht kann eine Hilfe?Übergabe von Container.Eval an (Html.ReaderPartial) in ASP.NET Repeater Control

übrigens weiß ich, dass ich es auf andere Weise tun kann, aber ich möchte wissen, ob es machbar ist oder nicht.

+0

muss ich weiß, Sie WinForms mit MVC compbine kann ... Aber der Mensch ... Ich würde es nicht empfehlen. Du wirst an einem Ort enden, an dem du nicht sein willst. Vielleicht versuchen Sie Ihre RenderPartial innerhalb <%# %> Anweisung setzen. –

Antwort

5
ist die gleiche wie in, dass es einen Ausdruck erwartet, die einen String zurückgibt, so dass diese Zusammenstellung bekommen Sie eine Methode aufrufen müssen, dass Html.RenderPartial ruft(), kehrt dann eine leere Zeichenfolge:
 
<% 
protected string RenderControl(object dataItem) 
{ 
    Html.RenderPartial("UserControl1", ((MyType) dataItem).Title); 
    return ""; 
} 
%> 

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

ich würde nur foreach obwohl verwenden - Mischen WebForms Datenbindung und MVC teilweise Wiedergabe ist unberechenbar, besten:

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

Sie machen das Leben nicht schwerer als es sein ...

+0

+1 für "mach das Leben nicht härter als es sein muss". –

+0

Alles ist einfach, aber <% Html.RenderPartial("UserControl1", o.Title);%> macht es schwer es ist anders als andere HTML-Erweiterungen Danke trotzdem –

0

Versuchen Sie RenderPartial innerhalb <%# %> Anweisung setzen wie:

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

Danke für Ihre Hilfe, aber ich habe diese Kompilierung Ausnahme: CS1026:) erwartet Ich teste es, bevor es nicht funktioniert danke nochmal ... –

Verwandte Themen