ASP.NET MVCリリースに含まれているHtml.RenderPartial
とMVC Futuresに含まれているMicrosoft.Web.Mvc.ViewExtensions
のHTML.RenderAction
には大きな違いがあります。RenderAction RenderPartial
私のアプリケーションでは、それぞれ独自の機能を持つ多くの「ウィジェット」(並べ替え)から構成されるページが多数あります。
RenderAction
メソッドを使用する方がより合理的であるように見えました。各ウィジェットは異なるデータを取得し、専用ビューをレンダリングする責任があります(コントローラとユニークなビューモデルをRenderPartial
ビューをレンダリングするヘルパー)。
<% using (Html.BeginForm("Create", "Message", FormMethod.Post,
new { id = "messageCreateForm" })) {%>
とcorreclyレンダリングします
<% Html.RenderPartial("MessageForm",new MessageDTO()); %>
でそれを呼び出す:私のようなコントローラにアクションを作成する方法を指すフォームを持つ行っているテストから
<form id="messageCreateForm" method="post" action="/Message/Create">
しかし、RenderAction
と同等である(したがってcorreclyそうレンダリングない)ビューをレンダリングするコントローラでアクションメソッド:
<% Html.RenderAction<MessageController>(m => m.MessageForm()); %>
がでレンダリングされます:アクションが空であることを
<form id="messageCreateForm" method="post" action="">
注意。
これはRenderAction
ヘルパーを使用する正しい方法ですか、そのような場合に使用するのは正しいですか?
更新: 実際に部分ビューの名前を_MessageFormに変更すると、フォームが確実にレンダリングされます。
私はこの件に関する投稿をhttp://prideparrot.com/blog/archive/2012/10/renderpartial_vs__renderactionに作成しました。誰かがこのスレッドを手伝ってくれるでしょう – VJAI