6
votes

Passer des entiers d'entiers à la méthode WebAPI

J'essaie de passer un tableau d'int, mais je ne peux pas obtenir la valeur dans la méthode WebAPI

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


1 commentaires

J'ai essayé de supprimer Json.stringify mais je ne travaille toujours pas


3 Réponses :


9
votes

Votre code a l'air plutôt correct pour moi. Veuillez définir une structure de «Supprimer» objet. Une suggestion est d'utiliser nouveau tableau () Objet à initialiser la propriété DeleteDids et supprimer JSON.Stringify (). Une question similaire posée ici .

EDIT

Web API prend en charge les données de contenu de différentes manières, mais elle ne traite pas de plusieurs valeurs de contenu affiché. . Une solution pour votre problème pourrait être de créer un point de vue avec une propriété de type INT []. Comme le code ci-dessous, xxx

et l'utiliser comme type de paramètre.


5 commentaires

J'ai essayé d'utiliser un nouveau tableau mais obtenez toujours NULL sur le paramètre de méthode WebAPI


Merci de votre réponse, mais la question que vous avez référencée n'est pas la même chose que mon code fonctionne bien lorsque j'utilise la méthode d'action dans un contrôleur régulier, mais lorsque l'URL est de webapi, il ne peut pas obtenir les données.


Utilisez Firebug pour tester les données post-post.


Les données sont correctes sur le côté du client, mais le problème est que WebAPI utilise une liaison de modèle différente de celle de MVC.


Décorer votre paramètre d'action avec l'attribut [Fromuri]. Ce Post peut vous aider.



0
votes

Je soupçonne que le bit stringify est en train de gâcher votre objet - avez-vous essayé de l'attribuer à une variable à voir si c'est le formatage attendu?

Vous êtes en train de serrer le tout pour le moment:

{"Supprimerds": deleteDids}

tandis que ce que vous voulez probablement envoyer comme corps de poste est ceci:

{"Supprimerds": json.stringify (deleteDids)}


5 commentaires

Et de toute façon, si votre méthode de contrôleur s'attend à des entiers, pourquoi les stringifiez dans JS?


StringIFIFY n'était qu'un essai que j'ai composé une méthode d'action de test dans un contrôleur régulier et travaille MVC Modelbinder, mais webapi pas !!


@Muhammadalaa - Postez le JSON exact que vous envoyez avec la demande. La méthode du contrôleur est-elle touchée du tout? Obtenez-vous un tableau vide?


J'ai essayé d'envoyer des données statiques juste pour le test, je reçois un tableau vide dans la méthode Apicontroller


@Muhammad ALAA - POST ICI THE JSON Vous envoyez, statique ou non, sinon je ne peux pas vous aider



2
votes

Enfin, sur la base de @shashargan Répondez au fonctionnement et le code modifié comme suit: xxx pré>

et l'apicontroller: p> xxx pré>

et Pour la SuppreneviewModel: P>

public class DeleteViewModel
    {
        public int[] DeletedIds { get; set; }
    }


0 commentaires