为什么此代码返回没有ViewName的视图结果?

时间:2012-05-10 08:43:05

标签: asp.net-mvc-3

我在名为AdminController的控制器中有一些代码。

public ActionResult Login()
{
    AdminModel model = new AdminModel();
    return View(model);
}

当我在测试方法中检查视图时......

 var result = controller.Login();

 //assert
 Assert.IsInstanceOfType(result, typeof(ViewResult));
 Assert.AreEqual("Login", ((ViewResult)result).ViewName);

它不显示视图名称。但是肯定会返回Login视图。我想知道为什么没有设置视图名称?我认为它默认为动作结果方法名称?

1 个答案:

答案 0 :(得分:2)

仅在返回视图时设置viewName参数时才设置ViewName。例如:

return View("Login", model);

否则,如果未设置视图名称,则使用默认视图。

因此,要测试默认视图,应写入断言:

Assert.AreEqual("", ((ViewResult)result).ViewName);