Während Sie eine Aktion haben können, die eine Teilansicht zurückgibt, benötigen Sie keine Aktion, um eine Teilansicht zu rendern. RenderPartial nimmt die Teilansicht und rendert sie unter Verwendung des angegebenen Modells und der Ansichtsdaten, falls angegeben, in die aktuelle (übergeordnete) Ansicht.
Möglicherweise möchten Sie eine Aktion, die eine Teilansicht zurückgibt, wenn Sie AJAX zum Laden / Neuladen eines Teils einer Seite verwenden. In diesem Fall ist es nicht erwünscht, die vollständige Ansicht zurückzugeben, da Sie nur einen Teil der Seite neu laden möchten. In diesem Fall kann die Aktion nur die Teilansicht zurückgeben, die diesem Abschnitt der Seite entspricht.
Standardmechanismus
Teilansicht in einer normalen Ansicht verwenden (keine Aktion erforderlich)
...some html...
<% Html.RenderPartial( "Partial", Model.PartialModel ); %>
...more html..
Ajax-Mechanismus
Neuladen eines Teils einer Seite über AJAX (Hinweis teilweise wird beim ersten Laden der Seite inline gerendert)
...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>
Controller für AJAX
public ActionResult Action(...)
{
var model = ...
...
if (Request.IsAjaxRequest())
{
return PartialView( "Partial", model.PartialModel );
}
else
{
return View( model );
}
}