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)
哪个是快速渲染的最佳方法?
您正在进行过早优化,这是您不应该做的事情.第二个片段将比第一个片段快得多,但是,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)