返回的ViewName为空

时间:2011-02-14 18:58:35

标签: asp.net asp.net-mvc

我正在执行单元测试并检查我的控制器操作是否返回正确的视图但由于某种原因它总是返回空字符串。

  [When(@"when I go to the search page")]
        public void WhenTheUserGoesToTheSearchScreen()
        {
            _controller = new HomeController();
            _result = _controller.Search(); 
        }

        [Then(@"the search view should be displayed")]
        public void ThenTheSearchViewShouldBeDisplayed()
        {
            Assert.AreEqual("Search",(_result as ViewResult).ViewName); // ViewName is empty!
        }

1 个答案:

答案 0 :(得分:6)

ViewName属性将始终为空,除非您从控制器操作返回时传递视图的字符串名称,I.E:

public ActionResult Search()
{
    return View("Search");
}

如果您只返回View(),则ViewName将为空字符串。这很烦人(特别是在使用MVContrib时),但它就是它。