– Passing array of integers to webapi Method

I am trying to pass an array of int but I can not get the value in the webapi method

var postData = { "deletedIds": deletedIds };

        type: "DELETE",
        traditional: true,
        dataType: 'json',
        contentType: 'application/json',
        cache: false,
        url: "/api/Management/Models",
        data: JSON.stringify(postData),
        success: ModelDeleted,
        error: ModelNotDeleted

and in apiController :

        public bool DeleteModel(int[] deletedIds)
            return modelsRepository.DeleteModels(deletedIds);

Best Solution

Your code looking pretty Ok to me. Please define structure of "deletedIds" object. one suggestion is to Use new Array() object to initialize deletedIds property and remove JSON.stringify() . A similar question asked here.


Web API supports parsing content data in a variety of ways, but it does not deal with multiple posted content values. A solution for your problem could be to create a ViewModel with a property of int[] type. Like code below,

public class SimpleViewModel
    public int[] deletedIds{ get; set; }

    public bool DeleteModel(SimpleViewModel deletedIds)
        return modelsRepository.DeleteModels(deletedIds.deletedIds);

and use it as parameter type.

Related Question