Это - известная ошибка https://bugs.launchpad.net/ubuntu / + source/gnome-control-center / + ошибка/951805
Хотя вы можете иметь действие, возвращающее частичное представление, вам не нужно действие для визуализации частичного представления. RenderPartial берет частичное представление и отображает его, используя данную модель и данные представления, если они предоставлены, в текущее (родительское) представление.
Вам может потребоваться действие, которое возвращает частичное представление, если вы используете AJAX для загрузки / перезагрузки части страницы. В этом случае возвращение полного просмотра нежелательно, поскольку вы хотите перезагрузить только часть страницы. В этом случае вы можете сделать так, чтобы действие просто возвращало частичный вид, соответствующий этому разделу страницы.
Стандартный механизм
Использование частичного представления в обычном представлении (никаких действий не требуется)
...some html...
<% Html.RenderPartial( "Partial", Model.PartialModel ); %>
...more html..
Механизм Ajax
Перезагрузка части страницы через AJAX (обратите внимание, что частичное отображение отображается в процессе начальной загрузки страницы)
...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>
Контроллер для AJAX
public ActionResult Action(...)
{
var model = ...
...
if (Request.IsAjaxRequest())
{
return PartialView( "Partial", model.PartialModel );
}
else
{
return View( model );
}
}