Asp.net MVC怎么接受Paypal接口传递的Json数据?

标签: json Asp.net-MVC
发布时间: 2017/12/29 16:53:27
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我目前在控制器里用"FormCollection"来处理来自Paypal接口的Json数据,有没有更好的办法来实现?

Json:

{"menu": {
  "id": "file",
  "value": "File",
  "popup": {
    "menuitem": [
      {"value": "New", "onclick": "CreateNewDoc()"},
      {"value": "Open", "onclick": "OpenDoc()"},
      {"value": "Close", "onclick": "CloseDoc()"}
    ]
  }}}

Controller:

[HttpPost]
public JsonResult ReceiveData(FormCollection data)
{
    using (var ctx = new db_mydb())
    {
    }

    return Json("ok");
}


解决方法 1:

由于Asp.net MVC接收到的数据是结构化的,并以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; }
}

Action:

[HttpPost]
public JsonResult ReceiveData([FromBody]PaypalWebhookModel data) {
    using (var ctx = new db_mydb()) {
        //...
    }
    return Json("ok");
}


官方微信
官方QQ群
31647020