首页 新闻 会员 周边 捐助

MVC3中怎么调用Action在OnResultExecuted之后就终止请求,不向浏览器呈现内容?

0
悬赏园豆:5 [已解决问题] 解决于 2012-02-01 17:24

  我要根据View做静态化。如添加一篇文章(带分页,如果3页生成3个静态页),提交后,我想访问(访问次数根据页数而定)文章详情页(.cshtml)进行静态化,但是又不能展示出来文章详情页。

上善若水123的主页 上善若水123 | 菜鸟二级 | 园豆:210
提问于:2012-02-01 11:59
< >
分享
最佳答案
0

也就是说你想在cshtml第一次被访问后生成的html可以被后续直接访问,不需要再execute,其实就是outputcache的工作,如果你要得到html可以直接截取,如果要不展示出来时可以直接abort response。

收获园豆:5
today4king | 老鸟四级 |园豆:3499 | 2012-02-01 14:50

第一次访问已经做了静态化,但是某些页面可能比较耗时,所以在后台添加,提交时也需要做静态化,需要模拟第一次登陆访问,但是不要显示内容,需要abort response。但是HttpWebRequest类有abort 方法,而我在OnResultExecuted(ResultExecutedContext filterContext)方法中需要abort,HttpRequestBase类没有abort方法,并且HttpRequestBase不能转换成HttpWebRequest。

上善若水123 | 园豆:210 (菜鸟二级) | 2012-02-01 15:43
其他回答(2)
0

已解决,我改变了静态化的方式,通过HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); 获取页面的HTML,然后保存成Html文件就行了,不需要模拟访问。

上善若水123 | 园豆:210 (菜鸟二级) | 2012-02-01 17:23

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); 你的这句代码的url是绝对路径,还是相对路径?

支持(0) 反对(0) 鸭神附体 | 园豆:202 (菜鸟二级) | 2021-08-27 10:26
0

我的项目已经有静态页了,但是在action和view全部执行完毕后才会生成静态页,有没有办法可以异步访问这个action,但是页面不会展示出来?

鸭神附体 | 园豆:202 (菜鸟二级) | 2021-08-27 10:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册