2013-08-13 2 views
2

Я вызываю метод web-api удалять все с параметром типа массива, отображая значение null. Зачем?Метод удаления с типом массива как параметр, отображающий нулевое значение

Я передаю данные, такие как: данные: "ArrMenuId" + JsArrayMenuId,

function performalldeletemenu() 
{ 

    if (confirm('Are you sure you want to delete this menu?')) 
    { 
     var JsArrayMenuId = new Array(); 
     $("input:checked").each(function() 
     { 
      //console.log($(this).val()); //works fine 
      JsArrayMenuId.push($(this).val()); 
     }); 
     alert(JsArrayMenuId); 
     $.ajax({ 
      url: '/api/MenuWebApi/DeleteAllMenu/', 
      type: 'DELETE', 
      contentType: 'application/json; charset=utf-8', 
      data: "ArrMenuId"+ JsArrayMenuId, 
      success: function (data) 
      { 
       if (data.Success == true) 
       { 
        //GetMenuList(); 
       } 
      }, 
      error: function (xhr, textStatus, errorThrown) 
      { 
       //window.location = JsErrorAction; 
      }, 

      headers: 
      { 
       'RequestVerificationToken': JsTokenHeaderValue 
      } 
     }); 
    } 
    return false; 
} 



public HttpResponseMessage DeleteAllMenu(Array ArrMenuId) 
{ 

} 

Здесь ArrMenuId показывает нулевые значения.

если есть, то, пожалуйста, дайте мне знать.

+0

Как выглядит ваш метод удаления в вашем веб-api? добавьте это к вашему вопросу. Вы должны пройти данные не так, это очень придирчиво .. смотрите здесь, как передавать данные - http://api.jquery.com/jQuery.ajax/ – krilovich

+0

Я передаю данные вроде: data: "ArrMenuId "+ JsArrayMenuId, я добавил имя метода + jquery ajax в мой вопрос. – dotnetexpert

+0

Я также проверил, используя это: data: {ArrMenuId: JsArrayMenuId}, но та же проблема. пожалуйста, помогите мне на нем – dotnetexpert

ответ

1

Try изменения

data: "ArrMenuId"+ JsArrayMenuId, 

в

data: {ArrMenuId : JsArrayMenuId.join()} 

и изменение

public HttpResponseMessage DeleteAllMenu(Array ArrMenuId) 

в

public HttpResponseMessage DeleteAllMenu(string ArrMenuId) 

Я не думаю, что массив javascript легко преобразуется в массив C#, и, изменив его на это, вы вместо этого передаете строку. После того, как вы разделите эту запятую на строку, вы можете превратить ее в массив в своем C#

+0

Все правильно с вашим предложением, просто нужно передать модель с контроллером, тип строки показывает ошибку 404. – dotnetexpert

+0

не проблема :) если это помогло вам, пожалуйста, воздержитесь и принимайте – krilovich

+0

Да, моя проблема решена благодаря ... – dotnetexpert

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