ASP。净MVC设置生成PDF文件并可以点击预览示例

  介绍

这篇文章给大家分享的是有关ASP。净MVC设置生成PDF文件并可以点击预览示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

<强>背景及需求

项目使用的是MVC4框架,其中有一个功能是根据设置生成PDF文件,并在点击时直接预览。

<强>实现过程

<强> 1,第一版实现代码:

<强> HTML内容

@ {=,Layout 零;   }      & lt; ! DOCTYPE  html>   & lt; html>   & lt; head>   ,& lt; meta  name=皏iewport",内容=?device-width"宽度,/比;   ,& lt; title> Index   & lt;/head>   & lt; body>   & lt; p>大敌;   ,@Html.ActionLink(“预览PDF",“GetPdf", null, new {,目标=癬blank"})   ,& lt;/p>   & lt;/body>   & lt;/html>

<>强控制器代码

, public  ActionResult  GetPdf ()   ,{   return 才能;new  FilePathResult(“~/内容/,Garbage  Collection  Handbook.pdf",,“应用程序/pdf");   以前,}

<强>缺点:标题和文件下载时名称不是很友好。

 ASP。净MVC设置生成PDF文件并可以点击预览示例

<强> 1,第二版实现代码:

<强>我们做了2件事情:

<强>,1,让下载弹出框能显示友好的下载文件名。

<强>,2,让浏览器中的其他两个显示GetPdf的地方也显示友好的内容。

<>强自定义ActionFilter,对头进行修改,变为内联。(直接这么替换不知道会不会有隐患。)

public  class  MyPdfActionFilter :, ActionFilterAttribute   ,{   ,public  override  void  OnResultExecuted (ResultExecutedContext  filterContext)   ,{//附加=附件才能% 3 b +文件名% 3 d % 22 +垃圾+收藏+ Handbook.pdf % 22}   var 才能;filerHeader =, filterContext.HttpContext.Response.Headers.Get (“Content-Disposition");   if 才能;(! string.IsNullOrEmpty (filerHeader),,,, filerHeader.Substring (0,,“attachment" . length) .ToLower () .Equals (“attachment"))   {才能filterContext.HttpContext.Response.Headers才能[“Content-Disposition"],=,“inline", +, filerHeader.Substring (“attachment" . length, filerHeader.Length 作用;“attachment" . length);   ,,}   ,}   以前,}

<>强自定义ActionNameSelector实现对行动名称的拦截和判断。

public  class  MyActionNameSelecter : ActionNameSelectorAttribute   ,{   ,public  override  bool  IsValidName (ControllerContext  controllerContext, string  actionName,, MethodInfo  methodInfo)   ,{   return 才能;actionName.Contains (“pdf文件预览“);   ,}   以前,}

<>强控制器内代码修改如下

[MyActionNameSelecter]   ,(MyPdfActionFilter)   ,public  ActionResult  GetPdf ()   ,{   return 才能;new  FilePathResult(“~/内容/,Garbage  Collection  Handbook.pdf",,“应用程序/pdf")//才能增加FileDownloadName设置,但是这会让内容以附件的形式响应到浏览器(具体参考文件响应模式:内联和附件)。//才能文件变成被浏览器下载。   {才能,FileDownloadName =,“从而Garbage  Collection  Handbook.pdf",};   以前,}

<强>页面内容修改如下

@ {=,Layout 零;   }   & lt; ! DOCTYPE  html>   & lt; html>   & lt; head>   ,& lt; meta  name=皏iewport",内容=?device-width"宽度,/比;   ,& lt; title> Index   & lt;/head>   & lt; body>   & lt; p>大敌;   @ *大敌;第二个参数可能是一个动态生成的内容,需要行动中增加名称选择拦截,所以自定义了一个ActionNameSelectorAttribute类满足要求只* @   ,@Html.ActionLink(“预览PDF",,“从而Garbage  Collection  Handbook-PDF文件预览“,,null, new {,目标=癬blank"})   ,& lt;/p>   & lt;/body>   & lt;/html>

<强>最终效果

 ASP。净MVC设置生成PDF文件并可以点击预览示例

感谢各位的阅读!关”于ASP。净MVC设置生成PDF文件并可以点击预览示例”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

ASP。净MVC设置生成PDF文件并可以点击预览示例