Problemas para retonar JSON para usarlo con el plugin DataTable
Publicado por Ezequiel (8 intervenciones) el 24/01/2019 16:40:18
Buen día, mi problema es el siguiente. Quiero usar el plugin DataTable de Jquery para que me arme los filtros, ordenamientos y toda esas funcionalidades para una tabla. Para poder hacerlo necesito pasarle un json (me ha funcionado bien haciendo una llamada a un archivo json, pero quiero que me haga la tabla desde un Web Method).
Aca les dejo el código de mi Web Method
Ahora cuando hago la llamada JQuery no me sale una respuesta en json, sino en html algo asi como lo siguiente:
Mi funcion JQuery es:
Por ultimo cuando ejecuto con un alert el objeto d, me sale un monton de html y entre todo ese error lo siguiente:
Lo que mas me interesa es que pueda devolver bien el json, porque al parecer me esta devolviendo en la respuesta del firebug todo ese codigo html cuando deberia devolver solamente el json
Desde ya muchas gracias por su ayuda.
Aca les dejo el código de mi Web Method
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[System.Web.Services.WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)]
public static string RetonarJson()
{
String json_inicial = "{\"data\":";
List<Product> list = new List<Product>();
for (int i = 0; i < 50; i++)
{
Product product = new Product();
product.Name = "Apple" + i;
product.Expiry = "30-10-2018" + i;
product.Price = "30" + i;
list.Add(product);
}
String json_final = "}";
String json = JsonConvert.SerializeObject(list, Formatting.Indented);
String json_completo = json_inicial + json + json_final;
return json_completo ;
}
Ahora cuando hago la llamada JQuery no me sale una respuesta en json, sino en html algo asi como lo siguiente:
1
2
3
"1|#||4|835|updatePanel|MainContent_UpdatePanel1|
<div class="col-lg-4 col-md-4">
<span class="form-check-input" style="vertical-align: top"><input id="MainContent_rbNucsPendientes" type="radio" name="ctl00$MainContent$Opciones" value="rbNucsPendientes" onclick="javascript:setTimeout('__doPostBack(\'ctl00$MainContent$rbNucsPendientes\',\'\')', 0)" /><label for="MainContent_rbNucsPendientes"> NUCs pendientes de auditar</label></span><br />..................."
Mi funcion JQuery es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$(document).ready(function () {
$.ajax({
url: 'Paginacion.aspx/RetornarJson',
method: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
var d = JSON.parse(data);
alert(d);
$('#example').dataTable({
data: d,
paging: true,
sort: true,
searching: true,
scrollY: 200,
Columns: [
{ 'data': 'Name' },
{ 'data': 'Expiry' },
{ 'data': 'Price' },
]
});
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.responseText);
}
});
});
Por ultimo cuando ejecuto con un alert el objeto d, me sale un monton de html y entre todo ese error lo siguiente:
1
2
3
<span><H1>Error de servidor en la aplicación '/'.<hr width=100% size=1 color=silver></H1>
<h2><i>Método web RetornarJson desconocido.<br>Nombre del parámetro: methodName</i>
Lo que mas me interesa es que pueda devolver bien el json, porque al parecer me esta devolviendo en la respuesta del firebug todo ese codigo html cuando deberia devolver solamente el json
Desde ya muchas gracias por su ayuda.
Valora esta pregunta


0