1

入力フォームで、ユーザーに状態を選択させます。州のリストはデータベースに保存されます (まだすべての州をサポートしているわけではないため)。このリストはめったに変更されません。

したがってRenderAction、すべてのViewModelで状態のリストをビューに渡したくないという理由だけで、コントロールをレンダリングするために使用したいと考えています。このアクションの結果はドロップダウンです。

これは入力コントロールであるため、名前が必要です。したがって、メイン ビューから、次のように RenderAction を呼び出します。

@Html.RenderAction("GetStates", "Data", new { controlName = "states" });

合格controlNameは気分が悪い。RenderActionユーザーコントロールを作成するのに誤用しているように感じます@Html.Partialが、より適切であると思いますが、一方で、状態のリストをに渡したくありません@Html.Partial。その情報は、プレゼンテーションの問題により関連しているからです。

上記のようにRenderActionに固執し、controlNameを渡す必要がありますかまたはより良い解決策はありますか?

4

1 に答える 1

0

controlname をパラメーターとして渡すことに問題はありません。私はそれで行きます。

さらに、データベースから取得した状態のリスト。このリストをページに複数回表示している場合... TempData に保存します。tempdata に存在する場合は、それを取得して使用し、データベース ヒットを保存します。キャッシュを高くすることもできます。

于 2012-07-24T21:55:57.213 に答える