我们需要将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

希望这篇文章对以后的人有帮助,如果他们正在尝试类似的事情。

10-01 12:37