Von was ich verstanden habe gibt es einen großen Unterschied zwischen der Html.RenderPartial
in der ASP.NET MVC-Version und der HTML.RenderAction
in der Microsoft.Web.Mvc.ViewExtensions
in MVC Futures enthaltenen.RenderAction RenderPartial
Auf meiner Anwendung habe ich viele Seiten aus vielen "Widgets" (Art von) zusammengesetzt, die jeweils ihre eigene spezifische Funktion haben.
Es erschien mir vernünftiger, die Methode RenderAction
zu verwenden, da jedes Widget über einen dedizierten Controller verfügt, der für das Abrufen unterschiedlicher Daten und das Rendern einer dedizierten Ansicht zuständig ist (im Gegensatz zu nur einem Controller und einem eindeutigen Anzeigemodell, das an RenderPartial
übergeben wird) Helfer zum Rendern von Ansichten).
Aus den Tests, die ich getan habe mit einer Form, die zu einer Aktion erstellen Punkte-Methode in einem Controller wie:
<% using (Html.BeginForm("Create", "Message", FormMethod.Post,
new { id = "messageCreateForm" })) {%>
und es mit
<% Html.RenderPartial("MessageForm",new MessageDTO()); %>
Aufruf machen wird correcly a:
<form id="messageCreateForm" method="post" action="/Message/Create">
aber mit dem gleichen Äquivalent mit RenderAction
(also mit einem MessageForm
Aktionsmethode auf der Steuerung um die Ansicht zu übertragen) würde so nicht correcly machen:
<% Html.RenderAction<MessageController>(m => m.MessageForm()); %>
rendert in:
<form id="messageCreateForm" method="post" action="">
Hinweis, dass die Aktion leer ist.
Ist dies der richtige Weg, den RenderAction
Helfer zu verwenden und ist es richtig, es in solchen Fällen zu verwenden?
UPDATE: Tatsächlich Umbenennen der Teilansicht in _MessageForm macht das Formular korrekt.
Ich habe einen Beitrag zu diesem Thema hier http://prideparrot.com/blog/archive/2012/10/renderpartial_vs__renderaction erstellt. Wird jemandem helfen, diesen Thread zu besuchen – VJAI