I'm really new in TDD and, actually, I'm trying to follow the sample from my book (SportsStore -- Pro ASP.NET MVC Framework/Steve Sanderson/APRESS). I'm on pages 103-105.
Although there are more on this, as new to all of this, I'm concerned with the following statements.
ProductsController controller = new ProductsController(repository);
var result = controller.List(2);
//...
regarding the above statements, when I write this (as in the book),
var products = result.ViewData.Model as IList<Product>;
I get a compiler error "System.Web.MVC.ActionResult" does not contain a definition for ViewData ..." But, when I remove the List() from the statement, then the compiler error disapear.
var result = controller.List(2);//Doesn't work
var result = controller;//It works
Is something wrong there? I checked Apress website for that book, but there is nothing listed as Errata or issue. So I'm really lost.
Thanks for helping
That is because actionresult does not contains a definition for viewdata howerver viewresult does and viewresult is actually an actionresult so you can cast it to (ViewResult) and then get the viewdata
var products = ((ViewResult)result).ViewData.Model as IList<Product>;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With