3

フォームを複数のページに部分ビューとして埋め込むためのベスト プラクティスを探しています。

サイトの複数のページに埋め込もうとしているお問い合わせフォームがあります。通常、フォームは連絡先ページにあり、連絡先モデルはビューのモデルであり、検証のためにデータ注釈を使用できます。ただし、ビューはすでに強く型付けされています。

部分ビューで再利用可能なフォームを作成してページに埋め込むにはどうすればよいですか? 私はサイトで N2 を使用しているため、ページには既に厳密に型指定されたモデルが必要ですが、それらのオブジェクトを拡張することは可能です。

4

2 に答える 2

4

個人的には、このような横断的関心事にはHtml.RenderAction()を使用することをお勧めします。

お問い合わせフォームのハンドラーは、現在表示しているページとは別に存在する必要があるため、次の3つのオプションがあります。

  1. 現在のアクションの応答に手動で追加します
  2. ViewStateまたはViewModelを変更するベースコントローラーを使用して、現在のコントローラーの応答に手動で追加します
  3. 現在のビュー内でRenderAction()HtmlHelperを呼び出します

これらの3つのオプションのうち、3つ目は1と2よりも技術的にコストがかかりますが(まったく新しいリクエストを開始するため)、最も保守しやすいソリューションでもあります。RenderAction()を呼び出すことにより、連絡先フォームをビューの他の部分から完全に分離できるという利点があります。したがって、現在のコントローラーの応答にハッキングすることを心配する必要はありません。

于 2010-08-21T03:55:45.840 に答える
0

部分ビューのデータ モデルが既にメイン ビューのモデルにある場合は RenderPartial を使用し、それ以外の場合は RenderAction を使用します (その後、部分ビューのアクションによってビュー モデル自体が作成されます)。

于 2010-08-21T08:03:54.743 に答える