How to get the Model from an ActionResult?
asp.net-mvc, unit-testing
Solution
In my version of ASP.NET MVC there is no `Action` method on Controller. However, if you meant the `View` method, here's how you can unit test that the result contains the correct model.
First of all, if you only return ViewResult from a particular Action, declare the method as returning ViewResult instead of ActionResult.
As an example, consider this Index action
public ViewResult Index()
{
return this.View(this.userViewModelService.GetUsers());
}
you can get to the model as easily as this
var result = sut.Index().ViewData.Model;
If your method signature's return type is ActionResult instead of ViewResult, you will need to cast it to ViewResult first.
Problem
I'm writing a unit test and I call an action method like this ``` var result = controller.Action(123); ``` result is `ActionResult` and I need to get the model somehow, anybody knows how to do this?