2016-11-22 4 views
0

У меня следующий код JQuery в моей бритве ViewPageАякса, как @ html.raw

$(document).ready(function() { 

    var grouplistvalues = @Html.Raw(Json.Encode(Session["grouplist"])); 


    $("#nsline").click(function() { 

     alert(grouplistvalues) 

     $.ajax({ 
      type: "POST", 
      url: "SetupGroups", 
      data: { grouplist : grouplistvalues }, 
      dataType: "html", 
      success: function (response) 
      { 
       grouplistvalues = null; 
       grouplistvalues = response; 
       alert(response) 
      }, 
      error: function() 
      { 

      } 
     }); 

    }); 


    $("#ewline").click(function() { 

     $.ajax({ 
      type: "POST", 
      url: "SetupGroups", 
      data: { grouplist : grouplistvalues }, 
      dataType: "html", 
      success: function (response) 
      { 
       grouplistvalues = null; 
       grouplistvalues = response; 
      }, 
      error: function() 
      { 

      } 
     });   

    }); 

в выше grouplistvalues его принятии сессии в качестве HTML сырого

когда я предупрежу его на #nsline клик функции I можно увидеть,

enter image description here

в приведенной выше функции Я звоню функции AJAX и выше grouplistvalues значения обновления

однажды я предупрежу его #nsline клик ответа функции успеха я могу увидеть предупреждение, как folllowing enter image description here

начиная с этого (grouplistvalues значения) 1,2,.. меняется [1,2..] я не могу позвонить в другую функцию Ajax в #ewline клике функция, так как разность параметра,

это вышеописанный распространенным Ajax звоните

[HttpPost] 
    public JsonResult SetupGroups(long[] grouplist) 
    { 
     Session["grouplist"] = null; 

     List<long> groupList = new List<long>(); 

     foreach (var groupitem in grouplist) 
     { 
      groupList.Add(groupitem); 
     } 

     long[] grouparray = groupList.ToArray(); 
     Session["grouplist"] = grouparray; 

     return Json(grouparray); 
    } 
} 

Хотя у меня есть две щелкните Функции свою работу только с первого щелчка (ewline или nsline только первый раз)

Как решить эту

+0

Вы работаете с длинным массивом, так почему вы хотите формат, как X, Y, Z ...? Таким образом, ваш код в настоящее время работает! Я протестировал ваш код, и он работает – Furtiro

+0

нет его компиляции без каких-либо проблем, и как только я отлаживаю его работу с первого щелчка, я думаю, что, поскольку этот ответ меняет – kez

ответ

0

Это было в запросе Аякс dataType. Он должен быть json:

dataType: "json" 
+0

, нет, это даже не работает с первым щелчком :( – kez

+1

действительно? ваш код и выяснил, что 'dataType: html' заставляет ваше действие' SetupGroups' возвращать строку '' [1, 2] "' вместо json-массива '[1, 2]'. Вот почему со второго запроса, Параметр 'grouplist' всегда равен нулю. Вы можете попробовать оценить ответ в обратном вызове' success': 'grouplistvalues ​​= eval (response);' для работы, если вы все еще хотите сохранить 'dataType: html'. –