2009-02-21 134 views
1

我在动态生成一个表来呈现一些表格数据。通常我不会靠近桌子,但对于这种数据来说是适当的。asp.net mvc查看代码

我注意到我的视图代码变得很像意大利面。在循环体内为单元格和行分配类开始看起来很糟糕(对我的asp 3.0天有不好的倒叙)。

我研究了使用运行时序列化json为我的DTOs,然后使用JQuery插件模板化渲染JSON。这似乎是一个“酷”的想法,但更多的是编程练习,而不是我目前所关心的。

人们如何通过asp.net mvc建立更多的UI?

回答

1

如果你关心的代码混合视图标记的外观,你可以尝试不同的观点引擎:

所有这些视图引擎采用不同的方法来组合代码和标记,可以使视图标记“更清晰”。

+0

感谢您的联系。它看起来像NVelocity和NHaml是模板替换引擎。该功能看起来像可以用jQuery和jTemplates处理的东西。 Spark看起来很有趣,它定义了语言结构来处理和逻辑控制呈现的内容。 – blu 2009-02-21 03:35:21

0

我写了一些HtmlHelper扩展来帮助建立表格。这些扩展在代码中使用TagBuilder根据定义的值和HTMl属性生成行。使用这些扩展方法的视图代码相当干净,并且扩展方法本身是可测试的,以确保它们可靠地生成干净的代码。

样品视图代码:

<% var alternating = false; 
    foreach (var model in Model) { %> 
    <% using (Html.BeginTableRow(new { @class = alternating ? "alternating-row" : "" })) { %> 
     <%= Html.TableElement(model.Column1) %> 
     <%= Html.TableElement(model.Column2, new { @class = 'some-class' }); %> 
     <%= Html.TableElement(model.Column3) %> 
    <% } 
     alternating = !alternating; 
    %> 
<% } %> 

另外,其实我已经创建网格控制,将使用上述以及我的大多数视图代码由用适当的渲染网格控件生成一个样式表模型。

<% Html.RenderPartial("GridControl", Model, ViewData); %>