哪种方法可以在MVC3剃须刀引擎中快速渲染?foreach循环或按索引号给出?

Dha*_*ari 0 asp.net-mvc foreach razor

我正在开发基于ASP.NET MVC3和Razor Engine的电子商务网站.
我想展示产品.

例如,仅适用于5种产品.

@if (Model.Count > 0)
{ 

   @foreach (var @item in Model)
   {
        <text>Product Name:</text>@item.Name
   }
}
Run Code Online (Sandbox Code Playgroud)

要么

    @if (Model.Count > 0)
    { 
        <text>Product Name:</text>@Model.Name[0]
        <text>Product Name:</text>@Model.Name[1]
        <text>Product Name:</text>@Model.Name[2]
        <text>Product Name:</text>@Model.Name[3]
        <text>Product Name:</text>@Model.Name[4]
     }
Run Code Online (Sandbox Code Playgroud)

哪个是快速渲染的最佳方法?

Dar*_*rov 6

您正在进行过早优化,这是您不应该做的事情.第二个片段将比第一个片段快得多,但是,OMG,这是丑陋的.我更喜欢最具可读性的代码.我个人会使用显示模板:

@model IEnumerable<MyViewModel>
@if (Model.Count > 0)
{
    @Html.DisplayForModel()
}
Run Code Online (Sandbox Code Playgroud)

然后定义一个自定义的显示模板,该模板将自动为模型的每个元素呈现(~/Views/Shared/DisplayTemplates/MyViewModel.cshtml):

@model MyViewModel
<div>
    Product Name: @Html.DisplayFor(x => x.Name)
</div>
Run Code Online (Sandbox Code Playgroud)