Alors que vous pouvez avoir une action qui renvoie une vue partielle, vous n'avez pas besoin d'une action de rendre une vue partielle. RenderPartial prend la vue partielle et le rend, en utilisant le modèle et la vue de données si elle est fournie, dans le courant (parent).
Vous voulez peut être une action qui renvoie une vue partielle si vous êtes en utilisant AJAX pour charger/recharger une partie d'une page. Dans ce cas, le retour de la pleine vue n'est pas souhaitée, puisque vous ne voulez recharger une partie de la page. Dans ce cas, vous pouvez avoir l'action juste retour de la vue partielle qui correspond à la section de la page.
Mécanisme Standard
Faisant usage de la vue partielle dans l'affichage normal (aucune action n'est nécessaire)
...some html...
<% Html.RenderPartial( "Partial", Model.PartialModel ); %>
...more html..
Ajax mécanisme
Le rechargement d'une partie d'une page via AJAX (note partielle est rendu inline dans le chargement initial de la page)
...some html...
<div id="partial">
<% Html.RenderPartial( "Partial", Model.PartialModel ); %>
</div>
...more html...
<script type="text/javascript">
$(function() {
$('#someButton').click( function() {
$.ajax({
url: '/controller/action',
data: ...some data for action...,
dataType: 'html',
success: function(data) {
$('#partial').html(data);
},
...
});
});
});
</script>
Contrôleur pour l'AJAX
public ActionResult Action(...)
{
var model = ...
...
if (Request.IsAjaxRequest())
{
return PartialView( "Partial", model.PartialModel );
}
else
{
return View( model );
}
}