使用asp.net mvc吐出HTML

时间:2010-01-28 23:54:26

标签: asp.net-mvc

这是我们目前正在向我们的视图吐出一些HTML的方式。

            foreach (var reportGroup in managedReportGroup.CustomerTags)
            { %>

                <%= reportGroup.Name %>

                <%
            }

我能做到这样吗? (这对我不起作用)

        Action<ManagedReportGroups> handlesReportGroup = delegate(ManagedReportGroups managedReportGroup)
        {
            foreach (var reportGroup in managedReportGroup.CustomerTags)
            {
                Html.Encode(reportGroup.Name);                    
            }
        };  

原因是要减少aligator括号并清理我的代码。

谢谢,

麦克

2 个答案:

答案 0 :(得分:0)

为什么不使用PartialViews?

foreach (var reportGroup in managedReportGroup.CustomerTags)
            { %>

                <% Html.RenderPartial("NamePartialView", reportGroup.Name) %>

            }

然后您的局部视图可以呈现名称。

当您将reportGroup传递给PartialView时,这会更有效,然后让partialView编写所有HTML,或者在更原子级别调用每个渲染的其他PartialView。

答案 1 :(得分:0)

如果将其移动到部分视图,则仍需要在部分视图中执行循环。

你可以创建自定义的Html扩展方法,如果你真的死了你的第一个例子。

或者,如果您的主要目标是减少“鳄鱼括号”,那么如果您这样做,可以将其减少到两个:

<%
    foreach (var reportGroup in managedReportGroup.CustomerTags)
    {
        Response.Write(reportGroup.Name)
    }
%>

您可能还会考虑Spark View Engine