angularjs публикует сложные данные в WebApi 2

0

JS:

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

С#

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

Это действительно странно. Если я просто возражу, я могу получить правильную строку json json.

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

но если я изменяю тип на определенный тип, он не работает.

Данные объекта становятся значениями по умолчанию вместо значения, которое я публикую.

Я попробовал [FromBody], он тоже не работает.

Теги:
asp.net-web-api

1 ответ

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; }
}
  • 0
    оно работает ! но я не понимаю Я использовал для использования WebMethod. То, как я использовал, работало нормально на WebMethod. Кроме того, как мы можем разместить 2 объекта тогда?
  • 0
    Если вы хотите опубликовать два объекта, вы должны создать составной объект (OrderOptionWrapper), который содержит два свойства, OrderOption и ваше новое свойство объекта. Надеюсь, это поможет уточнить это для вас :)
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню