Acabo de empezar a usar Html.RenderPartial (usercontrol, modelo) para representar mis controles de usuario. ¿Es posible cambiar esta funcionalidad para mostrar una imagen de carga de Ajax mientras se carga la vista parcial?Representación de vistas parciales en MVC 3 con Ajax cargando la imagen
EDITAR: Lo intenté pero no pude hacerlo funcionar. Tengo una vista parcial como esto (_FixtureList.cshmtl):
@model List<Areas.Gameplan.Models.Fixture>
@foreach (var item in this.Model)
{
<tr>
<td class="teamgrid">@Html.Encode(item.Week)</td>
<td><img src='@Html.Encode(item.Logo)' alt="Logo" /></td>
<td class="teamgrid">@Html.Encode(item.Opponent)</td>
<td class="teamgrid">@Html.Encode(item.Result)</td>
</tr>
y esto es actualmente la forma en que estoy haciendo que la página:
public ActionResult Cincinnati()
{
//renderpartial
List<Fixture> lstFixtures = _Base.DataRepository.GetFixtureList("2017", "Cincinnati");
return View(lstFixtures);
}
}
y esta es la parte pertinente de mi punto de vista (Cincinnati.cshtml):
@model List<Areas.Gameplan.Models.Fixture>
@{
ViewBag.Title = "Cincinnati Bengals";
Layout = "~/Areas/Gameplan/Views/Shared/_Layout.cshtml";
}
<div id="bigborder">
<p>
<br />
<div class="sidebarleftteam">
<div id="divFixtures">
<table id='tblFixtures' align='center'><tr><th><img src='../../../../Content/Images/Gameplan/fixtureweek.jpg' /></th><th><img src='../../../../Content/Images/Gameplan/fixtureopponent.jpg' /></th><th/><th><img src='../../../../Content/Images/Gameplan/fixturescore.jpg' /></th></tr>
@{ Html.RenderPartial("_FixtureList", this.Model); }
</table>
¿cómo iba a aplicar su ejemplo a este código?
EDIT:
lo descubrió, esto es cómo lo hice:
public ActionResult MyPartial()
{
List<Fixture> lstFixtures = _Base.DataRepository.GetFixtureList("2016", "Cincinnati");
return PartialView("_FixtureList", lstFixtures);
}
Y en la vista:
$.ajax(
{
type: 'POST',
async: true,
contentType: 'application/json; charset=utf-8',
dataType: 'html',
url: 'MyPartial',
beforeSend: function (xhr) {
$('#mydiv').addClass('ajaxRefreshing');
xhr.setRequestHeader('X-Client', 'jQuery');
},
success: function (result) {
$('#mydiv').html("<table id='tblFixtures' align='center'><tr><th><img src='../../../../Content/Images/Gameplan/fixtureweek.jpg' /></th><th><img src='../../../../Content/Images/Gameplan/fixtureopponent.jpg' /></th><th/><th><img src='../../../../Content/Images/Gameplan/fixturescore.jpg' /></th></tr>" + result + "</table>");
},
error: function (error) {
alert(error);
},
complete: function() {
$('#mydiv').removeClass('ajaxRefreshing');
}
});
¿Puede explicar poco lo que está tratando de lograr? – VJAI