我正在学习 ASP MVC,因此对 TDD 和 MVC 框架还很陌生。我在编写模拟 TestMethod 来测试 Controller 内的操作时发现一个问题,即其主体中的“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="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0a6b68694a72737024696567" rel="noreferrer noopener nofollow">[email protected]</a>",
MessageBody="Some message here!!",
Name="Sun"
};
RedirectToRouteResult resultRoute = controller.Contact(message) as RedirectToRouteResult;
if (resultRoute != null)
{
Assert.AreEqual("Contact", resultRoute.RouteValues["action"]);
}
}
最佳答案
可能缺少对 System.Web 的引用
关于asp.net-mvc - 读取 RedirectToRouteResult 的 RouteValues 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9390819/