92 votes

Comment poster un tableau d'objets complexes avec JSON, jQuery à ASP.NET MVC Controller ?

Mon code actuel ressemble à ce qui suit. Comment puis-je transmettre mon tableau au contrôleur et quels types de paramètres mon action de contrôleur doit-elle accepter ?

function getplaceholders() {
    var placeholders = $('.ui-sortable');
    var result = new Array();
    placeholders.each(function() {
        var ph = $(this).attr('id');
        var sections = $(this).find('.sort');
        var section;

        sections.each(function(i, item) {
            var sid = $(item).attr('id');

            result.push({ 'SectionId': sid, 'Placeholder': ph, 'Position': i });
        });
    });
    alert(result.toString());
    $.post(
        '/portal/Designer.mvc/SaveOrUpdate',
        result,
        function(data) {
            alert(data.Result);
        }, "json");
};

La méthode d'action de mon contrôleur ressemble à

public JsonResult SaveOrUpdate(IList<PageDesignWidget> widgets)

-1voto

JsonW Points 89
    [HttpPost]
    public bool parseAllDocs([FromBody] IList<docObject> data)
    {
        // do stuff

    }

-2voto

mahdi moghimi Points 157

Il n'y a pas besoin de faire quoi que ce soit de spécial. Seulement dans votre section post, faites comme suit :

    $.post(yourURL,{ '': results})(function(e){ ...}

Dans le serveur, utilisez ceci :

   public ActionResult MethodName(List<yourViewModel> model){...}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X