Razor中收集MVC3的最佳实践

时间:2011-12-12 15:37:22

标签: c# razor

之前可能有人问过,但不是我能找到的。

我只是想知道你们的经验比我更多:

以Razor格式显示,编辑和添加新集合的最佳做法是什么?

详细说明我的意思 - 我主要是使用EditorTemplate比较强类型对象的集合来仅显示所述对象的一些属性,而不是在Razor代码中使用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>
}

它们在各个方面几乎相似,但我想知道我是否遗漏了任何东西!

由于

1 个答案:

答案 0 :(得分:5)

第一个更好。我总是使用编辑/显示模板。这允许我在多个位置重用模板。同样在编辑器模板的情况下,它会生成输入字段的正确名称和id,而在编写foreach循环时则不是这种情况。如果你想这样做 inline ,你必须使用带有索引的for循环,但事情变得很难看。

因此,每当你需要在ASP.NET MVC应用程序中取消/编辑某些东西时,为这个东西定义一个显示/编辑器模板,然后从集合属性的主视图中调用它。

另一种说法相同的方法如下:每次在Razor视图中编写foreachfor循环时,警报应响铃告诉您有更好的方法: - )