2016-03-15 17 views
1

我有恩陣列看起來像這樣:從jQuery的發送陣列ASP.NET和使用它

[Object { OldData="(3) Lindrigt skadad", NewData="(9) Uppgift saknas", AccidentNumber=1173590}] 

我做一個jQuery的崗位作爲下面ASP.NET:

 $.ajax({ 
      type: "POST", 
      url: DataReview.BASE + "/UOS/SaveUOSChangeLog", 
      data: postData, 
      success: function (data) { 
       //alert(data.Result); 
      }, 
      dataType: "json", 
      traditional: true 
     }); 

這裏是我的控制器:

public ActionResult SaveUOSChangeLog(List<String> values) 
{ 
    try 
    { 
     var fish = Json(new { Data = values }); 
     return Json(new { Result = "True", ResultData = values }, JsonRequestBehavior.AllowGet); 
    } 
    catch(Exception e) 
    { 
     return Json(new { Result = "Fail", Message = "Faaaaaail" }, JsonRequestBehavior.AllowGet); 
    } 
} 

當調試這一點,values[0] = "[object Object]"

我該如何訪問數組中的實際值?

編輯:

我創建了以下型號:

public class UOSChangeLogFrontEnd 
    { 
     public int AccidentNumber { get; set; } 
     public string OldData { get; set; } 
     public string NewData { get; set; } 
     public int Action { get; set; } 
    } 

的我的控制器看起來像這樣:

public ActionResult SaveUOSChangeLog(List<UOSChangeLogFrontEnd> values) 
     { 
      try 
      { 
       var fish = Json(new { Data = values }); 
       return Json(new { Result = "True", ResultData = values }, JsonRequestBehavior.AllowGet); 
      } 
      catch(Exception e) 
      { 
       return Json(new { Result = "Fail", Message = "Faaaaaail" }, JsonRequestBehavior.AllowGet); 
      } 
     } 

但值計數爲0時,我調試。

+1

要傳遞並不似乎是值的列表中的對象,如果您做了什麼,反映了數據模型類您正在發送到該控制器,然後將該類用作SaveUOSChangelog的參數 – Blindsyde

+1

值的列表不應該是字符串。創建一個模型,並用它來代替 – billybob

+0

@Noctane:所以我應該創建一個模型類,其屬性對應於我的數組中的屬性? – Bryan

回答

3

創建這樣的模型,而不是使用String作爲模式湖

public class AccidentModel 
{ 
    public int AccidentNumber { get; set; } 
    public string OldData { get; set; } 
    public string NewData { get; set; } 
} 

然後用它在你的行動是這樣的:

public ActionResult SaveUOSChangeLog(AccidentModel accident) 
{ 
    //..use your model 
} 
+0

謝謝。但我無法得到它的工作。檢查我更新的問題。 – Bryan

+0

JavaScript中的數據是什麼。放一個斷點來檢查它。 – billybob

+0

並嘗試在您的ajax調用中指定contentType。像這樣:contentType:「application/json; charset = utf-8」, – billybob

0

試試這個:

型號:

public class Object 
{ 
    public string OldData { get; set; } 
    public string NewData { get; set; } 
    public string AccidentNumber { get; set; } 
} 
public class RootObject 
{ 
    public Object Object { get; set; } 
} 

控制器:

public ActionResult SaveUOSChangeLog(List<RootObject> values) 

的JavaScript:

[{ 
    "Object": { 
    "OldData": "(3) Lindrigt skadad", 
    "NewData": "(9) Uppgift saknas", 
    "AccidentNumber": "1173590" 
    } 
}]