2015-12-29 139 views
-1

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

      } 

我現在想送表全球控制器和該方法javasript可發送表glabal控制器代碼: 這是我的表在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; 
    } 

有人可以幫我修復這段代碼,謝謝。

+0

我需要全球的內容插入表COMMANDE –

回答

2

我會建議創建一個單一的對象參數。 在Ajax調用的數據部分來定義你的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({ 
        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"); 
         } 
        } 
       }); 
+0

任何身份證件和QTE這是好事,但要完成你需要告訴他如何將之納入作爲Ajax調用的數據對象,而不是在他正在做的URL字符串中。 – StriplingWarrior

+0

我剛更新。有關在POST語句的正文部分發布的更多詳細信息,r代碼必須查找它,我使用的是angularjs方法,主要是:) – Frode