ServiceStack Model Binder for ServiceBase派生类型

时间:2012-02-24 10:07:13

标签: servicestack

是否可以在ServiceStack中使用自定义模型绑定器? (类似于ASP.NET MVC模型绑定的东西。)

我正在尝试以JSON格式从JavaScript发布此对象,并且作为响应,我收到HTTP Error 400 Bad请求。

  var order = {
  Id: 1,
  TableId: 2,
  StationId: 3,
  OrderState: 4,
  OrderProducts: [{
      Id: 5,
      OrderId: 6,
      ProductId: 3,
      Name: '8',
      Quantity: 9,
      Price: 10,
      Comment: '11',
      OrderExtras: []
  }]
};

在C#中我有:

public class Order
{
    public long Id { get; set; }
    public long TableId { get; set; }
    public long StationId { get; set; }
    public DateTime OrderDate { get; set; }
    public int OrderState { get; set; }
    public OrderProduct[] OrderProducts { get; set; }
}

public class OrderProduct
{
    public int Id { get; set; }
    public long OrderId { get; set; }
    public long ProductId { get; set; }
    public string Name { get; set; }
    public int Quantity { get; set; }
    public double Price { get; set; }
    public string Comment { get; set; }
}

如果我发送没有OrderProducts数组的请求,一切正常。

此外,如果我使用IRestClient在内部测试请求/响应,它也可以工作。

更新

我不确定我是否用C#代码正确描述了它。

如果我从JavaScript发送此对象,则可以:

var order = {
  id:1,
  OrderDate: '',
  OrderState : 1,
  TableId: 2,
  StationId: 4
 }

..虽然没有:

  var order = {
  id:1,
  OrderDate: '',
  OrderState : 1,
  TableId: 2,
  StationId: 4, 
  OrderProducts : [

      {id:1,
      OrderId: 1,
      ProductId: 2,
      Name:'t535',
      Quantity: 3,
      Price:3,
      Comment:'235235'},

      {id:1,
      OrderId: 1,
      ProductId: 2,
      Name:'t535',
      Quantity: 3,
      Price:3,
      Comment:'235235'}
  ] 
 }

0 个答案:

没有答案