2014-12-14 7 views
0

Я пытаюсь сделать вызов из представлений контроллеру с помощью jquery. однако он никогда не вызывает контроллер.JQuery, не вызывающий контроллер в asp.net mvc

У меня есть сайт Umbraco 7.1.2 в приложении ASP.NET MVC 4.

Мои JS

var dp = jQuery; 
dp.noConflict(); 
dp(document).ready(function() { 
    GetTestimonials(); 
}); 

function GetTestimonials() { 
    dp.ajax({ 
     type: 'GET', 
     url: '/Home/GetTestimonialsList', 
     cache: false, 
     success: function (data) { 
      dp.each(data, function (index, val) { 
       alert(val.Name + val.Comment + val.Date); 
      }); 
     }, 
     error: function() { 
      alert("error"); 
     } 
    }); 
} 

Тогда мой контроллер

[HttpGet] 
public JsonResult GetTestimonialsList() 
{ 
    var model = _spdb.TestimonialDetails.Where(t => t.Status == Enums.TestimonialsStatus.approved).Select(t => new { t.Comment, t.Name, t.Date}); 
    return Json(model, JsonRequestBehavior.AllowGet); 
} 

я поставил точку останова на контроллере, он никогда не был призван.

В браузере ошибок с jquery не было.

Однако он всегда вызывает предупреждение («ошибка»); при загрузке страницы.

Я вызвал console.log ("test"); он отображается при отладке браузера.

На той же странице я делаю сообщение формы для контроллера, используя jquery, и у него нет проблем вообще.

запрос от db дает мне данные справа.

Что я делаю неправильно?

Большое спасибо

ответ

0

Попробуйте это. Вы возвращаете IQuerable.

[HttpGet] 
public JsonResult GetTestimonialsList() 
{ 
    var model = _spdb.TestimonialDetails.Where(t => t.Status == Enums.TestimonialsStatus.approved).Select(t => new { t.Comment, t.Name, t.Date}).ToList(); 
    return Json(model, JsonRequestBehavior.AllowGet); 
} 
1

ОК, нашел решение. Я изменил URL-адрес на url: '/umbraco/surface/home/GetTestimonialsList' и отлично работает.

Смежные вопросы