質問

私はMVCを愛していますが、ユーザーコントロールを実装するつもりの意図を理解することができません。ショッピングバスケットの詳細を備えた複数のビューがある場合、ショッピングバスケットビューとコードをどのように取り入れることができますか。

役に立ちましたか?

解決

バスケットユーザーコントロールを使用するビューを返す各コントローラーアクションのバスケットデータを返す必要があります。ただし、ここではコードの繰り返しを避ける方法があります。 Onaxctustctionexectedイベントで適切なデータを挿入するカスタムActionFilterAttributeでアクションメソッドを飾ることができます。または、ベースコントローラーの初期化メソッドのViewData辞書にバスケットデータを追加して、ViewData ["Magic-String]]でコントロールでアクセスするか、作成するか、作成できます。魔法の文字列を避けるためのhtmlhelperの拡張方法。

他のヒント

から これ MSDNページ:

部分的なビューを使用すると、親ビュー内でレンダリングされるビューを定義できます。部分的なビューは、ASP.NETユーザーコントロール(.ASCX)として実装されています。

部分的なビューでショッピングカートビューを書き留めてください。ビューページ内で、あなたは呼び出します Html.RenderPartial("PartialNameHere") これをページ上のあらゆる場所にレンダリングしました。ビューと同様に、選択したタイプのモデルを渡すことができるように、強くタイプの部分的なビューを持つことができます。

次のことに注意してください(上記のMSDNリンクからも、強調鉱山):

部分的なビューがインスタンス化されると、 自分の 親ビューが使用できるViewDataDictionaryオブジェクトのコピー。したがって、部分的なビューは、親ビューのデータにアクセスできます。ただし、部分ビューがデータを更新する場合、それらの更新は部分ビューのViewDataオブジェクトのみに影響します。親ビューのデータはです いいえ かわった。

他の答えはまったく正しいですが、2番目のオプションがあります。部分的なビューに特化したコントローラーアクションへのAJAXコールの結果として、部分的なビューをレンダリングできます。そうすれば、あなたの部分的な見解は、それが気にかけているデータだけを持っているモデルを扱わなければなりません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top