我希望将json格式的发布数据接收到我的控制器。实际上它用于paypal支付webhook通话问题。我已经附加了一个json数据示例。请告诉我“FormCollection”是访问json的好主意还是最适合这种情况的做法?
JSON:
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
控制器:
[HttpPost]
public JsonResult ReceiveData(FormCollection data)
{
using (var ctx = new db_mydb())
{
}
return Json("ok");
}
答案 0 :(得分:3)
由于接收到的数据是结构化的并以JSON格式提交,因此您应该创建强类型模型来存储数据。
public class Menuitem {
public string value { get; set; }
public string onclick { get; set; }
}
public class Popup {
public IList<Menuitem> menuitem { get; set; }
}
public class Menu {
public string id { get; set; }
public string value { get; set; }
public Popup popup { get; set; }
}
public class PaypalWebhookModel {
public Menu menu { get; set; }
}
应该更新操作以反映所需的模型。
[HttpPost]
public JsonResult ReceiveData([FromBody]PaypalWebhookModel data) {
using (var ctx = new db_mydb()) {
//...
}
return Json("ok");
}