Chociaż można wykonać działanie, które zwraca częściowy widok, nie trzeba wykonywać akcji renderowania częściowego widoku. RenderPartial pobiera częściowy widok i renderuje go, korzystając z podanego modelu i wyświetlając dane, jeśli są dostarczane, do bieżącego (macierzystego) widoku.
Być może potrzebujesz akcji, która zwróci częściowy widok, jeśli używasz AJAX do ładowania/przeładowywania części strony. W takim przypadku zwrócenie pełnego widoku nie jest pożądane, ponieważ chcesz przeładować tylko część strony. W takim przypadku możesz spowodować, że akcja po prostu zwróci częściowy widok odpowiadający tej sekcji strony.
mechanizm Standardowy
Korzystając z częściowym widokiem w widoku normalnego (brak działania potrzebne)
...some html...
<% Html.RenderPartial("Partial", Model.PartialModel); %>
...more html..
Ajax mechanizm
Przeładunki część strony poprzez AJAX (uwaga częściowa jest renderowana w linii w początkowym ładowaniu strony)
...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 dla AJAX
public ActionResult Action(...)
{
var model = ...
...
if (Request.IsAjaxRequest())
{
return PartialView("Partial", model.PartialModel);
}
else
{
return View(model);
}
}
Rozumiem, po prostu bawię się z szablonem VS dla aplikacji MVC. Próbuję wyświetlić wiele list klientów na przykład w częściowym widoku. Obecnie mam klasę modelu przesyłania danych, w jaki sposób wysłać ten model do częściowego widoku bez angażowania widoku strony, który renderuje ten częściowy widok? Dzięki za pomoc! – yogibear
Częściowe jest zawsze uwzględniane w widoku głównym. Jedynym momentem, w którym sam powrócisz do części, byłoby uaktualnienie za pośrednictwem AJAX. Prawdopodobnie użyjesz częściowego do wyświetlenia ** ** listy klientów. Być może użyłbyś pętli foreach w twoim widoku do iteracji na listach (zawartych w modelu widoku), przekazując każdy z nich do częściowego jako jego model. – tvanfosson
+1 Bardzo dobrze! Niezła odpowiedź. –