We need to render an ActionResult
to a string
to add pages to our internal search engine index. We settled on this solution to render to string.
I've run into a problem with the ExecuteResult
call used to process the View.
var oldController = controllerContext.RouteData.Values["controller"];
controllerContext.RouteData.Values["controller"] =
typeof(TController).Name.Replace("Controller", "");
viewResult.ExecuteResult(controllerContext); // this line breaks
I receive the following error:
"Object reference not set to instance of object" error.
I've confirmed viewResult
is not null, so the exception has to be thrown internally in ExecuteResult
.
What could we be missing?
I figured it out. The issue with ExecuteResult wasn't working as expected was because I hadn't mocked the ControllerContext properly. I was able to solve the issue by mocking the controllercontext as described in this SO post:
Mocking Asp.net-mvc Controller Context
Hope this post helps someone in the future if they're trying to do something similar.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With