/ / Orchard - Ajax exibindo apenas uma visão parcial - asp.net-mvc, asp.net-ajax, orchardcms

Orchard - Ajax exibindo apenas uma visão parcial - asp.net-mvc, asp.net-ajax, orchardcms

Eu estou trabalhando em um projeto Orchard e estou tentando colocar meu código ajax lá.

Aqui está a visão:

    @model Ignite.Events.ViewModels.EventListPartViewModel
@{
Script.Require("jQuery");
Script.Include("EventList.js").AtLocation(Orchard.UI.Resources.ResourceLocation.Foot);
Script.Include("fullcalendar.js").AtLocation(Orchard.UI.Resources.ResourceLocation.Foot);
Script.Include("EventCalendar.js").AtLocation(Orchard.UI.Resources.ResourceLocation.Foot);
Script.Include("jquery.unobtrusive-ajax.js").AtLocation(Orchard.UI.Resources.ResourceLocation.Foot);
Style.Include("fullcalendar.css").AtLocation(Orchard.UI.Resources.ResourceLocation.Foot);
}

@using (Ajax.BeginForm("GetEventListItems", "Events", new { area="Ignite.Events", month = 4, year = 2013 }, new AjaxOptions { UpdateTargetId = "event-list", HttpMethod = "GET", InsertionMode = InsertionMode.Replace}, new { id = "ajaxForm" }))
{
@Html.AntiForgeryToken();
<input type="submit" value="Get Next" />
}
<table id="event-list" class="event-list">
@Html.Partial("_EventList", Model.Events)
</table>

<div id="calendar" class="clear"></div>

Aqui está um controlador que está retornando a visão parcial:

[ValidateAntiForgeryToken]
public PartialViewResult GetEventListItems(int? month, int? year)
{
if (month == null || year == null)
{
month = DateTime.Now.Month;
year = DateTime.Now.Year;
}

var result = _eventListDataService.GetEventListItems((int) month, (int) year);

return PartialView("_EventList", result);
}

Eu estou me perguntando por que eu sempre recebo apenas a visão parcial e não a visão completa com a visão parcial renderizada nela.

Obrigado,

Jakub

Respostas:

0 para resposta № 1

Somente a visão parcial está sendo renderizada porque é isso que GetEventListItems() está retornando: PartialViewResult.

O que acontece quando você muda o retorno para ViewResult?

Você também precisará decorar o método (ou o Controlador) com ThemedAttribute(true).