我在名为 AdminController 的 Controller 内有一些代码。
public ActionResult Login()
{
AdminModel model = new AdminModel();
return View(model);
}
当我在测试方法中检查 View 时...
var result = controller.Login();
//assert
Assert.IsInstanceOfType(result, typeof(ViewResult));
Assert.AreEqual("Login", ((ViewResult)result).ViewName);
它不显示 View 名称。但是登录 View 肯定会返回。我想知道为什么没有设置 View 名称?我以为它默认为操作结果方法名称?
最佳答案
仅当您在返回 View 时设置了 viewName
参数时,才会设置 ViewName。例如:
return View("Login", model);
否则,如果未设置 View 名称,它将使用默认 View 。
因此,要测试默认 View ,您的断言应编写为:
Assert.AreEqual("", ((ViewResult)result).ViewName);
关于asp.net-mvc-3 - 为什么此代码返回没有 ViewName 的 View 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10530401/