Опубликовать больше чем одну сериализованную форму в одном Ajax для контроллера C #? - PullRequest
0 голосов
/ 23 декабря 2019

У меня есть 2 формы, которые я хочу отправить на контроллер, используя концепцию сериализации сразу. Можно ли отправить более одной формы сериализации в один AJAX для контроллера? если это так, как я могу это сделать?

это мой ajax / javascript:

    $('#btnSave').click(function () {
        debugger;
        var vDataHead = $('#frmHeader').serialize();
        var vDataDet = $('#frmDetail').serialize();


        if ($("#txtCompanyID").val() == "" || $("#txtBranchID").val() == "" || $("#txtUserID").val() == "")
        {
            debugger;
            Swal.fire('Error!', 'Please Fill All Fields to Save Budget Setting!', 'error');
        }
        else
        {
            debugger;
            $.ajax({
                url: '/MappingUserItemGroup/SaveData',
                data: { dataHead: vDataHead, dataDet: vDataDet },
                method: 'POST',
                success: function (mdl)
                {
                    debugger;
                    if (mdl == "Exist")
                    {
                        debugger;
                        Swal.fire('Error!', 'Setting Mapping User Item Group Already Exist ', 'error');
                    }
                    else if (mdl == "Berhasil")
                    {
                        debugger;
                        Swal.fire('Success', 'Setting Mapping User Item Group Was Successfully Saved!', 'success').then(() => { loadTable();});
                    }
                    else if (mdl == "Gagal")
                    {
                        debugger;
                        Swal.fire('Error!', 'Setting Mapping User Item Group Failed To Be Saved!', 'error');
                    }
                },
                error: function (mdl)
                {
                    debugger;
                }
            });
        }
    });

и это мой контроллер:

public ActionResult SaveData(MapingUIGH dataHead, List<MapingUIGD> dataDet)
    {
        //do something here with that data serialize

    }

1 Ответ

0 голосов
/ 23 декабря 2019

Вы передаете два значения формы как объект, поэтому создайте модель представления на стороне сервера, которая соответствует объекту

public class MappingViewModel
{
    public MapingUIGH DataHead { get; set; }
    public List<MapingUIGD> DataDet { get; set; }
}

, и используйте ее в качестве параметра для метода действия, поэтому формат данных отправляется из пользовательского интерфейсасоответствует параметру

public ActionResult SaveData(MappingViewModel viewModel)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...