2010-03-09 59 views
4

我习惯在常规的ASP.Net web项目中使用Repeater控件。我看到ASP.Net MVC没有这样的事情。我应该在这里使用什么?在ASP.Net中寻找中继器类型功能MVC

编辑:

在回答这个问题,我在尝试这样做,我不能在foreach实现。我想我正在尝试获得交替的排样式。此外,在视图中添加标记之外的东西只是感觉有点不妥。但是,也许我会在与之合作时克服这一点。感谢您的答案。

回答

8

最简单的方法是使用foreach循环。
你想做什么?

编辑

<% bool odd = false; 
    foreach(var row in something) { %> 
    <tr class="<%= odd ? "OddRow" : "EvenRow" %>"> 
     ... 
    </tr> 
<% odd = !odd; } %> 
+0

+1我的想法正好。没有像我们在非MVC中那样的控件。 – 2010-03-09 17:55:20

+0

我想念最多的替代项目模板。 – uriDium 2010-03-09 17:56:41

+0

您可以翻转一个布尔值并使用内联的三元运算符,这实际上比重复整个模板要容易得多。 – SLaks 2010-03-09 17:58:14

1

为了增加SLaks响应。

您可以将您的html封装到部分视图中。

致电<%= Html.Partial("ViewName", optional_ViewModel) %>

这可能更接近中继控制。部分视图的类似于您的项目模板。

这种方法也可以很好地重用代码。

1

如果你错过了很多WebForms的功能,也许你只需要一个更丰富的视图引擎?我可以建议Spark View Engine?就像WebForms一样,它包含了很多功能,所以你不必一直重写相同的东西和/或写一大堆你自己的帮手。

+1

Spark ViewEngine非常强大,我绝对喜欢它比使用WebForms ViewEngine时通常生成的标签汤更好... – 2010-03-09 18:12:23

0

交替行的样式可以通过CSS样式来实现...
顺便说一句 - 每一个从网页表格的funcionality可以在MVC实现......到底都是HTML,JS和CSS

0

你甚至可以为此创建一个HTML助手。