我们需要将ActionResult
呈现为string
,以将页面添加到我们的内部搜索引擎索引中。我们选择了this solution to render to string。
我遇到了用于处理View的ExecuteResult
调用的问题。
代码段:
var oldController = controllerContext.RouteData.Values["controller"];
controllerContext.RouteData.Values["controller"] =
typeof(TController).Name.Replace("Controller", "");
viewResult.ExecuteResult(controllerContext); // this line breaks
我收到以下错误:我已经确认
viewResult
不为null,因此必须在内部将异常抛出到ExecuteResult
中。我们可能会缺少什么?
最佳答案
我想到了。 ExecuteResult的问题未按预期工作,是因为我没有正确地模拟ControllerContext。我能够通过模拟SO上下文中描述的controllercontext来解决此问题:
Mocking Asp.net-mvc Controller Context
希望这篇文章对以后的人有帮助,如果他们正在尝试类似的事情。