如何使用AJAX将多个参数传递给mvc控制器

时间:2017-02-05 04:06:26

标签: javascript ajax asp.net-mvc-4

我有一个控制器,其参数类型不同(型号,数组,字符串和整数) 这样的事情。

public JsonResult UpdateDemandeur(Demandeurs ddeur, Photos vImg, Array vRev, Array vLangAut, int vLangMater)

我想通过AJAX调用来发布我的数据,并且我使用了这种类型的东西:

                var json = JSON.stringify({
                    'ddeur': {
                        ID_Ville: xIDVille,
                        ID_Province: xIDProv,
                        CodePostal_Demandeur: xCPDdeur,
                        Tel1_Demandeur: xTel1Ddeur,
                        Tel2_Demandeur: xTel2Ddeur,
                        Tel3_Demandeur: xTel3Ddeur,
                        Courriel1_Demandeur: xCour1Ddeur,
                        Courriel2_Demandeur: xCour2Ddeur,
                        Courriel3_Demandeur: xCour3Ddeur,
                        Code_Conseiller: xCodeCons,
                        ID_SituationMatrimoniale: xIDSitMat,
                        ID_Sexe: xIDSexe,
                        Date_Naissance_Demandeur: xDteNais,
                        ID_TranchesRevenu: xRevDdeur,
                        ID_Occupation: xIDOcc,
                        ID_Scolarite: xIDScol,
                        ID_StatutLegal: xIDStatLegal,
                        ID_Communaute: xIDComm,
                        ID_SourceInformation: xIDSceInfo,
                        Handicape: xHandicape,
                        Reference: xRef,
                        Remarques_Demandeur: xRemDdeur,
                        Date_Cloture_Dossier: xDtClotureDos,
                        Actif_Inactif: xInActif,
                        Dte_Saisie: xDteSaisie,
                        UserId: xUsrID

                    },
                    'vImg': {
                        Nom_Table: 'Demandeurs',
                        Photo: resp
                    }
                  ...
                });

                $.ajax({
                    type: "POST",
                    url: "../Conseiller/UpdateDemandeur",
                    data: json,
                    dataType: "json",
                  ...

正如你在屏幕截图中看到的那样,我在控制器端的变量是空的,没有错误...我已经尝试了几件事但是从那以后一直很头疼。

Bad One

2 个答案:

答案 0 :(得分:0)

没有必要对它进行字符串化..只需传递一组对象:

var json = [
                {
                    ID_Ville: xIDVille,
                    ID_Province: xIDProv,
                    CodePostal_Demandeur: xCPDdeur,
                    Tel1_Demandeur: xTel1Ddeur,
                    Tel2_Demandeur: xTel2Ddeur,
                    Tel3_Demandeur: xTel3Ddeur,
                    Courriel1_Demandeur: xCour1Ddeur,
                    Courriel2_Demandeur: xCour2Ddeur,
                    Courriel3_Demandeur: xCour3Ddeur,
                    Code_Conseiller: xCodeCons,
                    ID_SituationMatrimoniale: xIDSitMat,
                    ID_Sexe: xIDSexe,
                    Date_Naissance_Demandeur: xDteNais,
                    ID_TranchesRevenu: xRevDdeur,
                    ID_Occupation: xIDOcc,
                    ID_Scolarite: xIDScol,
                    ID_StatutLegal: xIDStatLegal,
                    ID_Communaute: xIDComm,
                    ID_SourceInformation: xIDSceInfo,
                    Handicape: xHandicape,
                    Reference: xRef,
                    Remarques_Demandeur: xRemDdeur,
                    Date_Cloture_Dossier: xDtClotureDos,
                    Actif_Inactif: xInActif,
                    Dte_Saisie: xDteSaisie,
                    UserId: xUsrID

                },
                {
                    Nom_Table: 'Demandeurs',
                    Photo: resp
                }
              ...
            ];

            $.ajax({
                type: "POST",
                url: "../Conseiller/UpdateDemandeur",
                data: json,
                dataType: "json",
              ...

答案 1 :(得分:0)

我可以通过的唯一方法是在AJAX调用的数据部分中定义所有参数。 像这样:

 $.ajax({
                    type: "POST",
                    url: "../Conseiller/UpdateDemandeur",
                    data: {
                        Adresse_Demandeur: xAddDdeur,
                        ID_Ville: xIDVille,
                        ID_Province: xIDProv,
                        CodePostal_Demandeur: xCPDdeur,
                        Tel1_Demandeur: xTel1Ddeur,
                        Tel2_Demandeur: xTel2Ddeur,
                        Tel3_Demandeur: xTel3Ddeur,
                        Courriel1_Demandeur: xCour1Ddeur,
                        Courriel2_Demandeur: xCour2Ddeur,
                        Courriel3_Demandeur: xCour3Ddeur,
                        Code_Conseiller: xCodeCons,
                        ID_SituationMatrimoniale: xIDSitMat,
                        ID_Sexe: xIDSexe,
                        Date_Naissance_Demandeur: xDteNais,
                        ID_TranchesRevenu: xRevDdeur,
                        ID_Occupation: xIDOcc,
                        ID_Scolarite: xIDScol,
                        ID_StatutLegal: xIDStatLegal,
                        ID_Communaute: xIDComm,
                        ID_SourceInformation: xIDSceInfo,
                        Handicape: xHandicape,
                        Reference: xRef,
                        Remarques_Demandeur: xRemDdeur,
                        Date_Cloture_Dossier: xDtClotureDos,
                        Actif_Inactif: xInActif,
                        Dte_Saisie: xDteSaisie,
                        UserId: xUsrID,

                        Nom_Table: xTable,  //(varchar(50), not null)
                        Photo: null, //(varbinary(max)2147483647)
                        Nom_Fichier_Photo: resp, //(varchar(max), null)
                        Remarques_Photo: null,  //(varchar(max), null)

                    },
                    dataType: "json",...

因此正确评估了我的所有参数类型。 我知道这不是编码(有了这个,我肯定很快会遇到一个瓶颈),所以如果有人可以帮忙解决这个问题,那就很有趣。