I created Web Api and MVC combined for single page web app. I want to call web api and render mvc controller to create pdf from view using Rotativa api. Problem is when i access
Finally get solution.
Let say your controller name is "PDFController" and action name is "GetPDF". Write following code in your api controller
// Add key value
RouteData route = new RouteData();
route.Values.Add("action", "GetPDF"); // ActionName
route.Values.Add("controller", "PDF"); // Controller Name
System.Web.Mvc.ControllerContext newContext = new System.Web.Mvc.ControllerContext(new HttpContextWrapper(System.Web.HttpContext.Current), route, controller);
controller.ControllerContext = newContext;
controller.GetPDF();
Your are done now. Your pdf should get generated.
Hope it help
Try by replacing your GetRequestionPdf with below one:
public HttpResponse GetRequistionPdf(modelClass oModel)
{
HttpResponse response = HttpContext.Current.Response;
ReportController _Report = new ReportController();
response.Clear()
response.ClearContent()
response.ClearHeaders()
response.Buffer = True
response.ContentType = "application/pdf"
response.AddHeader("Content-Disposition", "attachment;filename=xyz.pdf")
response.BinaryWrite(_Report.GetPdfBytesFormView(oModel));
response.End()
return response;
}