0

私は、Razor Engine を使用した ASP.NET MVC3 に基づく e コマース サイトに取り組んでいます。
商品を陳列したい。

たとえば、5 つの製品のみ。

@if (Model.Count > 0)
{ 

   @foreach (var @item in Model)
   {
        <text>Product Name:</text>@item.Name
   }
}

また

    @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]
     }

高速レンダリングのための最良のアプローチはどれですか?

4

1 に答える 1

6

時期尚早の最適化を行っていますが、これは行うべきではありません。2 番目のスニペットは最初のスニペットよりもわずかに高速ですが、OMG、それは醜いです。私は最も読みやすいコードを好みます。個人的には、表示テンプレートを使用します。

@model IEnumerable<MyViewModel>
@if (Model.Count > 0)
{
    @Html.DisplayForModel()
}

次に、モデルの各要素に対して自動的にレンダリングされるカスタム表示テンプレートを定義します ( ~/Views/Shared/DisplayTemplates/MyViewModel.cshtml):

@model MyViewModel
<div>
    Product Name: @Html.DisplayFor(x => x.Name)
</div>
于 2012-04-18T06:57:46.010 に答える