從視圖中的數據生成html頁面的最佳方式是什麼?我有一個包含所有表格等的html模板。不想使用像JqueryTemplate這樣的模板。從Asp.net MVC控制器返回Pdf文檔
5
A
回答
2
只需創建pdf服務器端並返回文件而不是html視圖。 我沒有什麼樣的PDF提供商的你使用,但這對於iTextSharp的一個解決方案:
的public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
Session["MySessionVariable"] = "My Session Variable Value assigned in Index";
return View();
}
public ActionResult About()
{
return View();
}
public string RenderViewAsString(string viewName, object model)
{
// create a string writer to receive the HTML code
StringWriter stringWriter = new StringWriter();
// get the view to render
ViewEngineResult viewResult = ViewEngines.Engines.FindView(ControllerContext, viewName, null);
// create a context to render a view based on a model
ViewContext viewContext = new ViewContext(
ControllerContext,
viewResult.View,
new ViewDataDictionary(model),
new TempDataDictionary(),
stringWriter
);
// render the view to a HTML code
viewResult.View.Render(viewContext, stringWriter);
// return the HTML code
return stringWriter.ToString();
}
[HttpPost]
public ActionResult ConvertThisPageToPdf()
{
// get the HTML code of this view
string htmlToConvert = RenderViewAsString("Index", null);
// the base URL to resolve relative images and css
String thisPageUrl = this.ControllerContext.HttpContext.Request.Url.AbsoluteUri;
String baseUrl = thisPageUrl.Substring(0, thisPageUrl.Length - "Home/ConvertThisPageToPdf".Length);
// instantiate the HiQPdf HTML to PDF converter
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
// hide the button in the created PDF
htmlToPdfConverter.HiddenHtmlElements = new string[] { "#convertThisPageButtonDiv" };
// render the HTML code as PDF in memory
byte[] pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory(htmlToConvert, baseUrl);
// send the PDF file to browser
FileResult fileResult = new FileContentResult(pdfBuffer, "application/pdf");
fileResult.FileDownloadName = "ThisMvcViewToPdf.pdf";
return fileResult;
}
[HttpPost]
public ActionResult ConvertAboutPageToPdf()
{
// get the About view HTML code
string htmlToConvert = RenderViewAsString("About", null);
// the base URL to resolve relative images and css
String thisPageUrl = this.ControllerContext.HttpContext.Request.Url.AbsoluteUri;
String baseUrl = thisPageUrl.Substring(0, thisPageUrl.Length - "Home/ConvertAboutPageToPdf".Length);
// instantiate the HiQPdf HTML to PDF converter
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
// render the HTML code as PDF in memory
byte[] pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory(htmlToConvert, baseUrl);
// send the PDF file to browser
FileResult fileResult = new FileContentResult(pdfBuffer, "application/pdf");
fileResult.FileDownloadName = "AboutMvcViewToPdf.pdf";
return fileResult;
}
}
來源:
+0
好吧,你抓住了我。讓我們從頭開始。你真實的情況是什麼?您想做什麼?有許多不同的控制器發送任何類型的數據到html頁面,有或沒有控制器 – 2012-07-19 13:20:15
6
使用hiqpdf html to pdf converter,商業產品試試這個辦法這個示例代碼:How to convert HTML to PDF using HiQPDF
+0
我正在搜索顯示pdf文件3天。但是這個解決方案更好。謝謝 – MustafaP 2013-12-05 13:09:48
相關問題
- 1. 返回從MVC控制器
- 2. ASP.NET MVC 3從控制器返回.csv文件
- 3. MVC C#在返回PartialView之前從控制器返回文件
- 4. C#從MVC控制器返回純Json
- 5. 從mvc控制器返回json
- 6. ASP.NET MVC:通過控制器爲AJAX調用返回控制
- 7. ASP.NET控制器返回
- 8. 解碼從ASP.NET MVC 3控制器返回的Json數據
- 9. ASP.NET MVC:從控制器返回CDN圖像
- 10. 如何從ASP.NET MVC 4中的控制器返回JSON對象?
- 11. asp.net mvc 3從控制器操作返回消息ajax
- 12. ASP.NET MVC AJAX調用返回值從控制器查看
- 13. 如何從ASP.NET 5 MVC 6控制器動作返回Javascript
- 14. 從控制器動作返回RDF - ASP.NET MVC
- 15. 如何從asp.net-mvc控制器返回原始數組操作
- 16. 從控制器返回Json數據到視圖ASP.NET MVC
- 17. 返回動態數組從控制器Asp.Net MVC
- 18. 返回2dimentional數組,以查看從控制器在Asp.Net MVC 3
- 19. ASP.NET MVC Ajax調用不返回從控制器Json數據
- 20. 如何從ASP.NET 5 MVC 6控制器操作返回XML
- 21. Asp.Net MVC - 從控制器動作返回純的ViewModel
- 22. 在asp.net MVC 3 applciation返回從同一個控制器動作
- 23. 從asp.net的MVC控制器
- 24. ASP.NET MVC:返回純文本文件從控制器方法下載
- 25. 在ASP.NET Web API中從控制器返回二進制文件
- 26. 從MVC控制器返回數據返回相同的視圖
- 27. ASP.Net MVC控制器
- 28. MVC - 爲編輯配置文件從控制器返回模型
- 29. MVC控制器,從WebAPI獲取文件並返回FileResult
- 30. ASP.NET MVC 4異步控制器回調
爲什麼你不想在mvc synrax剃鬚刀中使用build?或者你需要做客戶端? – 2012-07-19 12:04:26
爲什麼你需要做客戶端?爲什麼不生成PDF服務器端,並返回就緒PDF作爲字節? – 2012-07-19 12:16:09