angularjs将复杂数据发布到WebApi 2

时间:2015-07-02 21:35:47

标签: c# angularjs asp.net-web-api

JS:

$http.post("/api/Checkout/SaveOrderOption", { OrderOption: OrderOption })

C#

[HttpPost]
public void SaveOrderOption(object OrderOption)
{
    _Logger.Trace(OrderOption.ToJSON());
}

真的很奇怪。如果我只是反对,我可以获得正确的原始json字符串。

{"OrderOption":{"xxxx":"xxx","www":true,"yyy":true}}

但如果我将类型更改为特定类型,则无法正常工作。

对象的数据变为默认值,而不是I post值。

我试过了[FromBody],它也没有用。

1 个答案:

答案 0 :(得分:1)

通过将其包装在一个对象中,你在一个对象中有一个对象,我猜你的类型无法识别。只需使用期望它的显式路径发布对象本身。

$http.post("/api/Checkout/SaveOrderOption", OrderOption)

[HttpPost]
[Route("Checkout/SaveOrderOption/{orderOption}")]
public void SaveOrderOption([FromBody]OrderOption orderOption)
{
    _Logger.Trace(orderOption.ToJSON());
}

public class OrderOption
{
    public string Xxxx { get; set; }
    public bool Www { get; set; }
    public bool Yyy { get; set; }
}