2009-02-21 204 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); %>