将字符串解析为对象

时间:2015-12-29 22:11:14

标签: javascript c#

我在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 });

            }

我现在想要将表全局发送到控制器,这是将表格glabal发送到控制器的方法javasript的代码: 这是我在javascript中的表格形式:enter image description here

 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;
    }

有人可以帮我修复此代码,谢谢。

1 个答案:

答案 0 :(得分:2)

我建议创建一个单个对象参数。 定义您的datacontract

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");
                        }
                    }
                });