ポートフォリオ用のコントローラがあり、使用しているビューモデルはDisplayItemと呼ばれています。モデルの機能は関係ありませんが、モデルは自分のポートフォリオの一部に関するデータを表します。ASP MVC - モデルデータを渡すか、データベースから取得します
このコントローラーのインデックスページでは、データベースから必要な情報を取得して上位5つのポートフォリオDisplayItemを構築し、コレクション(List <>)をビューに送信します。ビューには、表示された各プロジェクトの「プロジェクトを表示する」ボタンが付いたプレビューが列に表示されます。これらのボタンをクリックすると、PortfolioControllerアクションの "Display"にルーティングされます。
私の質問は、アクション "表示"のビューに適切なデータを送信する2つの方法の効率についてです。もちろん、選択したDisplayItemのIDを送信してデータベースから取得し、モデルを再構築してビューに送信することもできます。私が最初に考えたのは、これが以前は必要な情報を引き出していたのを見て、これがデータベースの不必要な作業だということでした。 IDメソッドを使用すると、必要になるまで残りの情報を引き出すことはできません。
私の代わりのアイデアは、(POSTで送信できないコレクションを含む)モデルをシリアル化し、次にアクションに文字列として必要なものを投稿し、オブジェクトにシリアル化することです。
私の経験はウェブではなく、ゲームプログラミングなので、私は自分の要素からある程度外れています。どのルートを選択するのかアドバイスが大好きです。この。
IDがテーブルのPKであると仮定すると、データベースからオブジェクトを取得することは盲目的に速くなり、実行する方法です。モデルをビューにシリアライズしてワイヤをまたいで再送信することは、ウェブフォームで 'ViewState'を模倣しようとするのと同じです。 –
もちろん、私は明らかにアプリケーションの詳細は分かりませんが、一般的な理由はありませんコレクションをPOSTできない理由それだけでより多くの作業が必要です。あなたのフィールドは、CollectionProperty [0]のようなIDを持つでしょう。つまり、間違いなくIDを使用し、他の人が言ったようにデータベースを照会する必要があります。 – Jaquez