将字符串分析为对象

Parse string to object

本文关键字:对象 字符串      更新时间:2023-09-26

我用javascript:创建了一个表

var global = [];
            function GetValues() {
                debugger;
                var myList = $("#multiSelect");
                var yy = $("#article").val();
                var Selectedelement = $("#quantiCommande").val();
                myList.append('<option value=' + Selectedelement + '>' + Selectedelement + " " + yy + '</option>');
                global.push({ "id": yy, "qte": Selectedelement });
            }

我现在想将表global发送到控制器,这是将表glabal发送到该控制器的方法javasript的代码:这是我在javascript中的表格形式:在这里输入图像描述

 function Test() {
                var NumCommande = $("#NumCommande").val();
                var client = $("#clientc").val();
                debugger;
                $.ajax({
                    url: "/Commande/Ajoutercommande?NumCommande=" + NumCommande + "&client=" + client + "&global=" + global,   //          /Controlleur/Action 
                    type: "POST",
                    dataType: 'text',
                    //data : {Nom: nom},
                    success: function (responseText) {
                        debugger;
                        if (responseText == "True") {
                            alert("Succes");
                        }
                        else {
                            alert("error");
                        }
                    }
                });
            }

这是我的控制器方法,我需要显示我的表全局的元素

 public Boolean Ajoutercommande(string NumCommande, int client, Object global)
    {
        CRUDEntities db = new CRUDEntities();
        Commande c = new Commande();
        c.NumCommande = NumCommande;
        c.Quantité = client;
        Console.Write(global);
        db.Commande.Add(c);
        db.SaveChanges();
        return true;
        return true;
    }

有人能帮我修复这个代码吗?谢谢。

我建议创建一个单独的对象参数。定义您的数据合约

public class TableContent 
{
     public int id { get; set; }
     public string qte { get; set; }
}
public class AjourtercommandParam 
{
     public string NumCommande { get; set; }
     public int client { get; set; }
     public TableContent[] global { get; set; }
}

然后,在你的控制器(WebApi控制器,对吧?)

[HttpPost]
[Route("Commande/Ajoutercommande")]    
public async Task<IHttpActionResult> Ajoutercommand(AjoutercommandParam param)
{
     if(ModelState.IsValid == false)
     {
          return BadRequest(ModelState);
     }
     try
     {
         var result = await DataLayerService.AjouterCommand(param);
         return Ok(result);
     }
     catch (Exception ex)
     {
         return BadRequest(ex.Message);
     }
}

将数据发布到ajax调用的数据部分。

$.ajax({
                    url: "/Commande/Ajoutercommande",
                    type: "POST",
                    dataType: 'json',
                    data : {
                       "NumCommande": NummCommande,
                       "client" : client,
                       "global" : global
                    },
                    success: function (responseText) {
                        debugger;
                        if (responseText == "True") {
                            alert("Succes");
                        }
                        else {
                            alert("error");
                        }
                    }
                });