1

我有单元测试代码:

var result = (RedirectToRouteResult)controller.Create();
Assert.AreEqual("AddUnits", result.RouteValues["action"]);

但是 result.RouteValues["action"] 给了我错误: 无法将 [] 索引应用于 System.Web.Routing.RouteValueDictionary 类型的表达式 我使用 ASP.NET MVC 4

4

5 回答 5

8

虽然RedirectToRouteResult是在System.Web.Mvc程序集中定义的,但也是在程序集中RouteValueDictionary定义的System.Web(因为它ASP.Net Routing是在 MVC 框架之前引入的机制的一部分)。

尝试System.Web在您的测试项目中添加对的引用,看看是否有帮助。

于 2013-06-30T15:58:52.833 回答
2

添加对 System.Web.Routing 的引用

于 2014-03-20T17:13:35.527 回答
1
于 2016-05-31T15:37:02.893 回答
0

将 System.Web 的引用添加到您的测试项目中。对我来说有帮助。

于 2015-03-03T13:22:38.023 回答
0

您只需要在您的测试项目中添加“System.Web”和“System.Web.Routing”的引用即可。您可以通过右键单击测试项目中的引用来简单地添加它。

于 2018-02-09T09:33:17.767 回答