日期:2014-05-18  浏览次数:20437 次

MVC中如何读取Response中的具体信息??
我使用ASP.NET MVC 2.0写了一个小系统,需要这样一个功能,将ActionResult返回的HTML代码以HTML文件形式保存在服务器上,生成静态页面,以便以后访问。
替换模板的方法就不考虑了,因为太复杂了。
查阅了网络上的很多资料,有人提到在MVC中以过滤器(Filter)的方法来压缩生成的HTML代码。也就是给Action加上一个过滤器,在OnActionExecuted方法中实现这个功能,在Action执行结束以后,立刻执行OnActionExecuted方法,读取Response中的信息,读出HTML代码,然后进行压缩,最后输出。
代码如下:http://blog.csdn.net/lihui_830501/article/details/5515260
我根据这个例子,修改上述代码,想把读出的信息储存下来,但是总是不能成功,只能读到Response的一些头部信息,并不能读到其中的内容,也许是我的方法不对吧。
请教各位如何应用上面的代码,我应该修改哪里才能读取Response的信息并储存下来。

------解决方案--------------------
不知道~~帮顶~
------解决方案--------------------
Response是得不到HTML的。。
可以这样写
C# code

 string  PageUrl = "http://www.baidu.com";
            System.Net.WebClient wc = new System.Net.WebClient();
            wc.Credentials = System.Net.CredentialCache.DefaultCredentials; // 获取或设置用于对向 Internet 资源的请求进行身份验证的网络凭据。
            Encoding enc = Encoding.GetEncoding("GB2312"); // 如果是乱码就改成 utf-8 / GB2312
            Byte[] pageData = wc.DownloadData(PageUrl); // 从资源下载数据并返回字节数组。
            return  enc.GetString(pageData);

------解决方案--------------------
你为什么要在OnActionExecuted方法执行呢 在OnResultExecuted()方法执行就可以了啊

OnActionExecuted是在action执行完之后就执行
这个时候result都还没发布 你怎么获取html?