0

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

例如,仅适用于 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

您正在进行过早的优化,这是您不应该做的事情。第二个片段比第一个片段快得可以忽略不计,但是,天哪,这很难看。我更喜欢可读性最强的代码。我个人会使用显示模板:

@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 回答