2016-10-08 6 views
0

Я смущен, почему мой вызов Ajax не работает. В настоящее время мне просто нужен мой метод Ajax от клиента для доступа к моему методу контроллера. Команда оповещения - POPING на моем HTML Но на стороне сервера нет доступа к клиенту. Пожалуйста, посоветуйте, что мне не хватает в следующем:Ajax вызывает не доступ к стороне сервера

  1. Вызов Действие Метод моего контроллера Получить данные

    <script> 
    $(document).ready(function() { 
         $.get("@Url.Action("GetData","Driver")",function(data){ 
         $("#dataForSecond").html(data); 
         alert("Second ActionResult"); 
        }); 
    }); 
    

  2. Получ данных в мой контроллер просто возвращает:

    public ActionResult GetData() 
    { 
        logger.AddLog("INTO 2nd Action Method"); 
        var secondData = "I m Dummy"; 
        //System.Threading.Thread.Sleep(500); 
        logger.AddLog("Setting loggedInAgent Value Again"); 
        // ViewBag.loggedInAgents = "11"; 
        return Json(secondData, JsonRequestBehavior.AllowGet); 
    } 
    
  3. Для тестирования я выполнял следующие действия на стороне клиента, но без REFRE SHING состоялся, только POP, как и раньше. Что происходит с моим кодом, я понятия не имею.

    $(function() { 
        var refreshInterval = 5000; 
        var url="@Url.Action("GetData","Driver")"; 
        setInterval(function() { 
        $("#View1").load(url); 
        }, refreshInterval); 
    
+1

Где вы установите значение 'secondData' переменной? Нет необходимости устанавливать элемент ViewBag в методе 'GetData'. Также вы вызываете метод «Show», и мы не знаем, что внутри этого! Вы не должны вызывать метод GetData? – Shyju

+0

Сэр, После редактирования @ У меня есть контроль в UI/Client для Ajax. Но контроль не идет в Controller Methods/Driver. Я реализовал LoGGING в GetData(), но журналы для этого метода никогда не записываются. –

+0

У вас есть js-ошибка на вашей странице? – Shyju

ответ

1

Вы звоните ActionResult, вам нужно позвонить JsonResult, именно поэтому не работает, см пример ниже:

   $.ajax({ 
       url: '/Product/List', 
       type: "GET", 
       data: { "nrRecs": 4 }, 
       async: true, 
       dataType: "json", 
       error: function (XMLHttpRequest, textStatus, errorThrown) { 
         alert('error'); 
       }, 
       success: function (data) { 
        alert('ok'); 
       } 
      }); 


    [HttpGet] 
    public async Task<JsonResult> List(int nrRecs) 
    { 
     var product = db.products.Take(4); 
     return Json(await product.ToListAsync()); 
    } 
Смежные вопросы