I have a ViewModel which contains the following struct:

```
public struct PricesAndDiscounts
{
    public decimal FlatOff;
    public decimal UnitPrice;
    public decimal TotalDiscount;
    public decimal TotalOptions;
    public decimal TotalOrderPrice;
}

```

The ViewModel is in a heirarchy such that there is a property of type PricesAndDiscounts which is a member of the DisplayRowPriceViewModel which is a member of the ManageOrderEditModel:  

-ManageOrderEditModel  

--DisplayRowPriceViewModel. 

The "shape" of the request is exactly as I would want and expect (see Fiddler screenshot of form items):

![enter image description here](https://i.stack.imgur.com/H4DZ0.png)

However, at the server, the default modelbinder instantiates the struct as zeros for each of its members. Everything else in the ViewModels were created by the ModelBinder without a problem.

Do I need to create a custom ModelBinder for my custom struct?

**Edit - adding more details**  

The signature is:

```
public ActionResult ManageOrder([FromBody]ManageOrderEditModel model)

```

I've tried it without the FromBody attribute. Also, the fact that PricesAndDiscounts is a struct is njot the issue. I changed it to a class and all members come in as zeros, instead of the values you can see in Fiddler from the form.

**ManageOrderEditModel**

```
public class ManageOrderEditModel
{
    public DisplayOptionsInDropDownViewModel DisplayOptionsInDropDownViewModel { get; set; }
    public DisplayRowPriceViewModel DisplayRowPriceViewModel { get; set; }

    public int ID { get; set; }
    public int RegType { get; set; }
}

```

**DisplayRowPriceViewModel**

```
public class DisplayRowPriceViewModel
{
    public Discount Discount { get; set; }
    public int NumberOfAdditionalLocations { get; set; }
    public OrderStatus OrderStatus { get; set; }
    public double Price { get; set; }
    public PricesAndDiscounts PricesAndDiscounts { get; set; }
    public RegType  RegistrationType { get; set; }
    public decimal RowPrice { get; set; }
}

```