Render View from another Area (MVC .Net Core)
Hi, I'm using MVC .net core and I have problems trying to specify the view to render which is in another (area) folder path
var contenido = await _jsReportMVCService.RenderViewToStringAsync(HttpContext, RouteData, "Areas/Cajas/Views/Cobros/DetailsPrint", cobroVM);
and I recive this exception:
ArgumentNullException: Value cannot be null.
Parameter name: Areas/Cajas/Views/Cobros/DetailsPrint does not match any available view
jsreport.AspNetCore.JsReportMVCService.RenderViewToStringAsync(HttpContext context, RouteData routeData, string viewName, object model)
Is there any way to render a view from other area?
Do you have a full stack?
Or could you debug it here and find out what is actually null?
Hi, thanks for response.
I'm new in all of this and I don't know how to debug a NuGet package. So I copied the method RenderViewToStringAsync to my controller and also change the view name
var contenido = await RenderViewToStringAsync1(HttpContext, RouteData, "~/Areas/Cajas/Views/Cobros/DetailsPrint.cshtml", cobroVM);
The RenderViewToStringAsync method gives me null on viewResult
var viewResult = ((IRazorViewEngine)context.RequestServices.GetService(typeof(IRazorViewEngine))).FindView(actionContext, viewName, false);
Doing some research on internet in found many people have problem with FindView Method so I comment the line and add replace it with GetView method
//var viewResult = ((IRazorViewEngine)context.RequestServices.GetService(typeof(IRazorViewEngine))).FindView(actionContext, viewName, false); var hostingEnv = context.RequestServices.GetService(typeof(IHostingEnvironment)) as IHostingEnvironment; var viewResult = ((IRazorViewEngine)context.RequestServices.GetService(typeof(IRazorViewEngine))).GetView(hostingEnv.WebRootPath, viewName, false);
and its works, but I don't know why FindView method give me null.
Thanks for sharing. I use now also
You can update jsreport.AspNetCore nuget, it is part of 2.0.2.