2011-12-12 39 views
0

以前可能有人問過,但不是我能找到的。MVC3剃刀收藏​​最佳實踐

我只是從那些你想比我大得多的經驗:

什麼是顯示,編輯的最佳實踐,在剃刀格式添加新的集合?

詳細闡述一下我的意思 - 我主要是使用EditorTemplate比較強類型對象集合的EditorTemplate,以僅顯示該對象的某些屬性,而不是在剃刀中使用foreach循環在視圖上編碼本身,並明確地詳細說明那裏的屬性值。

樣品:

EditorTemplate:

<div> 
    <div> 
     @Html.LabelFor(x => x.Foo, "Foo") 
    </div> 
    <div > 
     @Html.TextBoxFor(x => x.Fishfood, new { style = "width: 200px" }) 
    </div> 
</div> 

主視圖:

<div> 
    @Html.EditorFor(x => x.FooBarItems) 
<div> 

OR:

@foreach (var item in Model.Items) 
{ 
    <div> 
     @Html.Label("Foo", item.Foo) 
    </div> 
    <div > 
     @Html.TextBox(item.Fishfood, new { style = "width: 200px" }) 
    </div> 
} 

他們在各方面都幾乎相似,但我想,如果我錯過了任何東西!

謝謝

回答

5

第一個比較好。我總是使用編輯器/顯示模板。這使我可以在多個地點重複使用該模板。同樣在編輯器模板的情況下,它會生成輸入字段的專有名稱和ID,當您編寫一個foreach循環時不會發生這種情況。如果你想這樣做內聯你將不得不使用for循環索引,但事情變得醜陋。

因此,每次需要在ASP.NET MVC應用程序中散佈/編輯某些東西的集合時,請爲此定義一個顯示/編輯器模板,然後從集合屬性的主視圖調用它。

另一種方式說同樣是這樣的:每次你寫的剃刀foreachfor循環查看報警是否響鈴告訴你,有:-)

+0

一個更好的辦法,我一直在努力的地方可能我自己。但是有很大的區別?我試圖說服我的老闆,這是集合在剃刀中顯示的方式,但我只是把我讀過的東西去掉。我完全同意模板更有用,節省代碼重複之類。 – M05Pr1mty

+0

@MattTolliday,是的,有一個區別:在編輯器模板的情況下,輸入字段的名稱將正確生成,以便默認模型聯編程序正確地獲取POST操作中的值。 –

+0

隱形編輯答案評論感謝:) – M05Pr1mty