在ASP.NET Repeater Control中将Container.Eval传递给(Html.ReaderPartial)

Kha*_*ied 2 asp.net asp.net-mvc repeater htmlextensions

我试图将Eval传递给ASP.NET Repeater中的Html.RenderPartial,但它无法正常工作吗?

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

顺便说一句,我知道我可以通过其他方式做到这一点,但我想知道它是否可行.

Sam*_*Sam 5

与它需要一个返回字符串的表达式是一样的,所以要进行这种编译,你必须调用一个调用Html.RenderPartial()的方法,然后返回一个空字符串:

<%
protected string RenderControl(object dataItem) 
{
    Html.RenderPartial("UserControl1", ((MyType) dataItem).Title);
    return "";
}
%>

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

我只想使用foreach - 混合WebForms数据绑定和MVC部分渲染是不可预测的,充其量:

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

不要让生活变得比它需要的更难......