在ASP.NET MVC 2中将视图呈现为字符串

Fra*_*rio 5 .net c# asp.net-mvc viewrendering

我们需要渲染一个ActionResulta string来向我们的内部搜索引擎索引添加页面.我们决定将此解决方案渲染为字符串.

我遇到了ExecuteResult用于处理View 的调用的问题.

代码片段:

var oldController = controllerContext.RouteData.Values["controller"];
controllerContext.RouteData.Values["controller"] = 
                  typeof(TController).Name.Replace("Controller", "");

viewResult.ExecuteResult(controllerContext); // this line breaks
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

"Object reference not set to instance of object" error.

我已经确认viewResult不是null,所以必须在内部抛出异常ExecuteResult.

我们还能错过什么?

Fra*_*rio 2

我想到了。ExecuteResult 的问题没有按预期工作是因为我没有正确模拟 ControllerContext。我能够通过模拟控制器上下文来解决这个问题,如这篇SO文章中所述:

模拟 Asp.net-mvc 控制器上下文

希望这篇文章对将来尝试做类似事情的人有所帮助。