当前第2页 返回上一页
自定义ActionFilter,对Header进行修改,变为内联。(直接这么替换不知道会不会有隐患。)
1 2 3 4 5 6 7 8 9 10 11 | public class MyPdfActionFilter : ActionFilterAttribute
{
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
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实现对Action名称的拦截和判断。
1 2 3 4 5 6 7 | public class MyActionNameSelecter : ActionNameSelectorAttribute
{
public override bool IsValidName(ControllerContext controllerContext, string actionName, MethodInfo methodInfo)
{
return actionName.Contains( "-PDF文件预览" );
}
}
|
控制器内代码修改如下
1 2 3 4 5 6 7 8 9 | [MyActionNameSelecter]
[MyPdfActionFilter]
public ActionResult GetPdf()
{
return new FilePathResult( "~/content/The Garbage Collection Handbook.pdf" , "application/pdf" )
{ FileDownloadName = "The Garbage Collection Handbook.pdf" };
}
|
页面内容修改如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | @{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name= "viewport" content= "width=device-width" />
<title>Index</title>
</head>
<body>
<p>
@* 第二个参数可能是一个动态生成的内容,需要ACTION中增加名称选择拦截,所以自定义了一个ActionNameSelectorAttribute类满足要求。 *@
@Html.ActionLink( "预览PDF" , "The Garbage Collection Handbook-PDF文件预览" , null, new { target= "_blank" })
</p>
</body>
</html>
|
最终效果
【相关推荐】
1. ASP.NET免费视频教程
2. ASP.NET教程
3. 极客学院ASP.NET视频教程
以上就是ASP.NET MVC 设置生成PDF文件,并可以点击预览的详细内容!
返回前面的内容
相关阅读 >>
asp.net部署到iis常见问题的解决方法_实用技巧
介绍oom中automapper的使用方法
asp.net教程--mvc中signalr的基础讲解
asp.net是什么?
asp.net 通过ajax实现无刷新分页
asp.net连接access数据库相对路径写法
如何在不使用 webmatrix 的情况下发布 web pages?
分享asp.net学习笔记(4)文件夹
asp.net core project.json文件(5)_实用技巧
.net mvc从视图传参到控制器的3种形式
更多相关阅读请进入《asp.net》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » ASP.NET MVC 设置生成PDF文件,并可以点击预览