目標
によって返された各結果の 1 つを取得しforeach
ます。
シナリオ
次の Razor のコード フラグメントを見てください。
@foreach (var product in Model.Collection.Products)
{
<p>@product.name</p>
}
クライアントへのリターンは次のとおりです。
Xbox360
Xbox360
Xbox360
Xbox360
プレイステーション3
プレイステーション3
プレイステーション3
さて、説明しましょう。私のアプリケーションは、さまざまな店舗の商品の価格を比較します。私の場合、Xbox 360 は 4 つのストアにあり、Playstation 3 は 3 つのストアに存在します。そのため、これらの名前が繰り返されます。
私が求めているのは単純です: 各製品の名前を 1 回だけ取得して、HTML の表の列に入力します — 理解できますか?
哲学
各製品はセッションに追加されます。この場合、セッションには 2 つの製品があります。1 つ目はXbox 360
で、2つ目はPlaystation 3
です。したがって、ご覧のとおり、Session を使用してこれを操作できます(「Session の各項目に対して、何かを実行します...」)が、常にクエリを実行する必要があるため、必要ではないと思いますデータベースであり、ロジックにより、必要なものが返されます。つまり、ユーザーが必要とするものを一時的に保存する以外に、セッションを使用する必要はありません。
スポットライト
はModel.Collection.Products
タイプList<Products>
です。
私は何を試しましたか?
このようなもの:
@foreach (var product in Model.Collection.Products.FirstOrDefault())
{
[...]
}
しかし、もちろん、失敗しました。基本的に私はのようなものが必要ですFirstOfEach()
。