0

検索パラメーターと検索結果を含む SearchModel があります。これは SearchController からビューに渡されます。ビューでは、検索パラメーターが検索フォームに取り込まれ、検索結果がテーブルとして表示されます。

ビューには、テーブルを含む Excel ファイルを生成するリンクがあります。最初は、別のアクション名を使用してモデルを SearchController に戻そうとしました。ただし、渡されたデータ (SearchModel) は null です。

調べてみると、ビューからコントローラーにデータを渡すべきではないようです。

これを行う適切な方法は何ですか?データベースに再度クエリを実行して検索結果を生成したくありません。データは、ビューに渡された Index アクションで生成されています。これを元に戻す方法はありますか?

4

1 に答える 1

1

最善かつ「適切な」方法は、データベースに再度クエリを実行することです。元のビューが生成されると、それを生成するために連携したすべてのコンポーネント (コントローラー、リポジトリなど) が停止します。それらはもう存在しません。データをサーバーのメモリに保存することもできますが、同じデータが頻繁に再利用される可能性がない限り、通常はお勧めできません。おそらく、すべてのユーザーがデータのエクスポートを望んでいるわけではないため、理由もなく大量のデータを保存することになります。

ただし、再利用される可能性がある場合は、キャッシュを使用できます。http://www.asp.net/web-pages/tutorials/performance-and-traffic/15-caching-to-improve-the-performance-of-your-website

于 2013-09-09T04:52:22.410 に答える