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

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;

または単純に、アクションの戻り値の型をViewResultではなくa に変更しActionResultます。

public ViewResult List(int param)

単体テストでは次を使用します。

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