Modelbinding using Interfaces in ASP.NET MVC 2

Posted by Thomas on Stack Overflow See other posts from Stack Overflow or by Thomas
Published on 2010-04-28T10:16:39Z Indexed on 2010/04/28 10:23 UTC
Read the original article Hit count: 293

Filed under:

I have the following View Data:

public class ShoppingCartViewData
{
    public IList<IShoppingCartItem> Cart
    {
        get;
        set;
    }
}

I populate the viewdata in my controller:

viewData.Cart = CurrentSession.CartItems;

return View(viewData);

And send the data to the view and display it using:

<% for (int i = 0; i < Model.Cart.Count; i++ ) { %>
 <%= Html.TextBoxFor(m => m.Cart[i].Quantity)%>
    <%= Html.HiddenFor(m => m.Cart[i].Id) %>
<% } %>

I want to be able to catch the viewdata on the post. When I try:

[HttpPost]
public ActionResult UpdateCart(ShoppingCartViewData viewData)
{
    ...
}

When I run this I get a: System.MissingMethodException: Cannot create an instance of an interface.

Can anyone shed some light on this. What would I have to do to get this to work?

Many Thanks

© Stack Overflow or respective owner

Related posts about asp.net-mvc