2

我的单元测试项目中有一个代码块,如下所示

IEnumerable<Product> result = (IEnumerable<Product>)controller.List(2).Model;

它产生错误

Error   1   'System.Web.Mvc.ActionResult' does not contain a definition for 'Model' and no extension method 'Model' accepting a first argument of type 'System.Web.Mvc.ActionResult' could be found ..

我该如何解决这个问题?

4

2 回答 2

2

如果操作返回视图,则将其转换为ViewResult

((ViewResult)(IEnumerable<Product>)controller.List(2)).Model
于 2013-07-11T14:42:43.160 回答
0

@archil 的回答会在运行时抛出异常:

Unable to cast object of type 'System.Web.Mvc.ViewResult' to type 'System.Collections.Generic.IEnumerable`1[Product]'.

正确的演员阵容是:

IEnumerable<Product> result = (IEnumerable<Product>)((ViewResult)controller.List(2)).Model;

或者简单地说,将操作的返回类型更改为 aViewResult而不是 a ActionResult

public ViewResult List(int param)

并在单元测试中使用:

IEnumerable<Product> result = (IEnumerable<Product>)controller.List(2).Model;
于 2016-05-29T19:46:56.310 回答