razor - kendo - telerik asp net mvc grid api
Kendo ui Grid muestra json en lugar de grid Asp.net razor (1)
Intento inicializar mi red Kendo ui. Puedo llenarlo usando el objeto Ver, pero cuando intento hacerlo en formato Json (es decir, cuando me muevo a la página siguiente) aparece una pantalla que muestra los resultados json en lugar de mi vista.
Aquí está el código del controlador:
public class CampaignsController : Controller
{
//
// GET: /Campaigns/
[HttpGet]
public ActionResult Index()
{
return View(GetAllCampaigns());
}
public ActionResult Campaigns_Read([DataSourceRequest] DataSourceRequest request)
{
DataSourceResult result = GetAllCampaigns().ToDataSourceResult(request);
return Json(result, JsonRequestBehavior.AllowGet);
}
private static IEnumerable<NH_Campaign> GetAllCampaigns()
{
List<NH_Campaign> result = null;
if (MBPDataAccess.Instance.GetAll(out result))
{
return result;
}
return new List<NH_Campaign>();
}
y el cshtml es:
@model IEnumerable<MBP.NH_Campaign>
<h2>View1</h2>
@(Html.Kendo().Grid(Model)
.Name("CGrid")
.Columns(columns =>
{
columns.Bound(p => p.CampaignID).Title("Id");
columns.Bound(p => p.CampaignName).Title("Name");
columns.Bound(p => p.ClickUrlC2C_OFF).Title("Click URL");
columns.Bound(p => p.PlatformID).Title("Platform ID");
})
//.Groupable()
.Pageable()
//.Sortable()
//.Filterable()
.DataSource(dataSource => dataSource.Ajax().PageSize(2).Read(read => read.Action("Campaigns_Read", "Campaigns"))
));
La acción de Index
que se llama cuando la página está cargada funciona muy bien, pero cuando intento pasar a la página siguiente, se Camapigns_Read
acción Camapigns_Read
, pero aparece una página en blanco con los resultados json. ¿Que me estoy perdiendo aqui?
Editar: quiero realizar paginación en el lado del servidor
Lo tengo ,
el problema era que la vista se debe inicializar primero, con el mismo nombre de controlador - maldita sea esta convención de nomenclatura :), mi solución era
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index([DataSourceRequest] DataSourceRequest request)
{
DataSourceResult result = GetAllCampaigns().ToDataSourceResult(request);
return Json(result, JsonRequestBehavior.AllowGet);
}