[英]Post JSON to MVC controller
我看過各種問題和答案,但是我只是部分成功。
視圖正在傳遞此JSON:
{JsonInput: [["208-01", "003158"]], JobNumber: "test"}
$.ajax({
type: "POST",
url: "/Dash/SavePickups",
contentType: 'application/json',
dataType: "json",
data: JSON.stringify({
JsonInput: final,
JobNumber:"test"
}),
上面的Json字符串通過/ Dash / SavePickups發送到控制器
[System.Web.Http.Route("Dash/SavePickups/{JsonInput}")]
public JsonResult SavePickups(object[][] JsonInput)
{
var FailResult = new { Success = "False", Message = "Error" };
var SuccessResult = new { Success = "True", Message = "Pickups Scheduled Successfully." };
return Json(SuccessResult, JsonRequestBehavior.AllowGet);
}
僅有部分JSON字符串傳遞給JsonInput。 在Debug中,我看到帶有Obj數組208-01和003158的JsonInput對象。
為什么不包含JobNumber,我可以在chrome Network POST中看到發送給控制器的JSON字符串的一部分。
繼續maccettura的答案-您的問題是將JSON反序列化為對象。 您指定的JSON的格式為{JsonInput:[“ 1234”,“ 5667”],JobNo:“ Test”}
具有一種可能的數據結構
List<string> , String
不會反序列化為“ sqaure”對象,例如
object [][]
我建議為您的json建立如下模型:
public class SavePickupsModel
{
public List<string> JsonInput {get; set;}
public string JobNo {get; set; }
}
然后將該模型用作方法的輸入:
[HttpPost]
[System.Web.Http.Route("Dash/SavePickups/{JsonInput}")]
public JsonResult SavePickups(SavePickupsModel JsonInput)
{
var FailResult = new { Success = "False", Message = "Error" };
var SuccessResult = new { Success = "True", Message = "Pickups Scheduled Successfully." };
return Json(SuccessResult, JsonRequestBehavior.AllowGet);
}
我將從使用[HttpPost]
屬性標記您的控制器開始
[HttpPost]
[System.Web.Http.Route("Dash/SavePickups/{JsonInput}")]
public JsonResult SavePickups(object[][] JsonInput)
{
}
我還要指出,您的操作參數( object[][] JsonInput
)對我來說並不正確。 您可能會發現json不會反序列化為該對象類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.