读RedirectToRouteResult的RouteValues字典

Sum*_*eet 2 asp.net-mvc unit-testing asp.net-mvc-2

我正在学习ASP MVC,因此是TDD和MVC框架的新手.我在编写模拟TestMethod以测试Controller内部的一个Action时发现了一个问题,它的主体是"RedirectToAction".

编写testMethod以确保重定向的Action正确无误.我读过它可以检查RedirectToRouteResult.RouteValues,并获得"action"键的值.即使在调试(观察属性),我也能够正确.但@编译时测试显示异常Cannot apply Indexing with [] to an expression of type RedirectToRouteResult.RouteValues.

以下是参考的代码段:

public void TestHomeControllerContactRedirectRoute()
        {
            HomeController controller = new HomeController();
            ContactMessage message=new ContactMessage(){

                Email="abc@xyz.com",
                MessageBody="Some message here!!",
                Name="Sun"
            };

            RedirectToRouteResult resultRoute = controller.Contact(message) as RedirectToRouteResult;

            if (resultRoute != null)
            {

                Assert.AreEqual("Contact", resultRoute.RouteValues["action"]);
            }
        }
Run Code Online (Sandbox Code Playgroud)

Bet*_*tty 5

可能缺少对System.Web的引用

资料来源:http://samritchie.net/2011/01/06/mvc-unit-testing-error/