У меня есть вызов get ajax:
function TraerInstructivos() {
$.ajax({
type: "GET",
url: '<%= Page.ResolveUrl("~/Instructivo/Instructivos.aspx") %>' + '/TraerInstructivos',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
$.each(result, function (i, item) {
alert(item.DescripcionVideo);
alert(item.DireccionVideo);
});
},
error: function (response) {
alert("Error");
}
});
};
Это вызывает следующий webmethod в моем aspx:
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public static List<InstructivoDTO> TraerInstructivos()
{
try
{
return Controles_Instructivo_Instructivos.TraerInstructivos();
}
catch (Exception ex)
{
throw ex;
}
}
Это вызывает фрагмент кода в моем ascx:
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public static List<InstructivoDTO> TraerInstructivos()
{
List<InstructivoDTO> lstResponse = new List<InstructivoDTO>();
WC.InstructivoDTOResp response = new WC.InstructivoDTOResp() { ListaDeInstructivos = new WC.ListaDeInstructivos() };
//Traigo los instructivos
WC.InstructivoDTOReq request = new WC.InstructivoDTOReq()
{
TipoOperacion = WC.Accion.Consultar,
Operacion = Constantes.Consultas.Instructivos.TRAER_INSTRUCTIVOS_WEB_COMERCIO,
ListaDeInstructivos = new WC.ListaDeInstructivos()
};
using (WC.FacturaClient fc = new WC.FacturaClient())
{
response = fc.InstructivosEjecutar(request);
}
foreach (var i in response.ListaDeInstructivos)
{
lstResponse.Add(new InstructivoDTO()
{
DescripcionVideo = i.DescripcionVideo,
DireccionVideo = i.DireccionVideo,
EsBackOffice = i.EsBackOffice
});
}
return lstResponse;
}
Возвращает список объектов POCO или DTO, действительно простых, у него есть 3 свойства, 2 из которых имеют тип string, а другое - логическое значение.
В функции alert в моем ajaxвызов Я вижу, что я получаю «неопределенный» в результате.
Я что-то упустил?Я попытался stringify
, JSON.Parse(response.d)
, который говорит 'недопустимый символ'.
РЕДАКТИРОВАТЬ:
Благодаря ответу HaukurHaf я изменилсяцикл for внутри моего jquery, кажется, что когда я проводил некоторые тесты, я изменил его, поэтому мой Ajax:
<script type="text/javascript">
$(document).ready(function () {
TraerInstructivos();
});
function TraerInstructivos() {
$.ajax({
type: "GET",
url: '<%= Page.ResolveUrl("~/Instructivo/Instructivos.aspx") %>' + '/TraerInstructivos',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
$.each(response, function (i, item) {
alert(item.DescripcionVideo);
alert(item.DireccionVideo);
});
},
error: function (response) {
alert("Error");
}
});
};
</script>
Все еще не определен, это интересная часть, если я поставлю консоль.вместо предупреждения для всего моего объекта я могу увидеть его со значениями, которые я положил в свою таблицу: