ASP.NET: Moving ViewState to bottom of page(ASP.NET:将 ViewState 移动到页面底部)
问题描述
将 ViewState 移动到页面底部
What are the latest and greatest ways to move ViewState to bottom of the page
这可以在 IHttpHandler 中完成吗?它可以在 web.config 中指定以拦截对*.aspx"的请求?
Can this be done in a IHttpHandler that can be specified in the web.config to intercept requests to "*.aspx"?
<httpHandlers>
<add verb="*" path="*.aspx" type="MyApp.OptimizedPageHandler" />
<httpHandlers>
其他选项是,这可以在 IHttpModule 中完成,但性能不佳,因为它会拦截所有请求.
Other options is that this could be done in a IHttpModule, but that is not as performant, as it will intercept all requests.
也可以在派生自 Page 或 MasterPage 类的类中完成,但这不是模块化.
Also it could be done in an a class deriving from the Page or MasterPage-class, but this is not as modular.
是否有任何绩效惩罚?
推荐答案
在进行一些研究后,我整理了这篇博文.
After conducting some research I put together this blog-post.
我通过创建一个 HttpModule 并应用一个 响应过滤器 来解决这个问题,它修改页面的输出并将 ViewState 移动到表格底部.
I solved the issue by creating a HttpModule and applying a Response Filter, which modifies the output of the page and moves the ViewState to the bottom of the form.
public class ViewStateSeoHttpModule : IHttpModule {
public void Init(HttpApplication context) {
context.BeginRequest += new EventHandler(BeginRequest);
}
private void BeginRequest(object sender, EventArgs e) {
HttpApplication application = sender as HttpApplication;
bool isAspNetPageRequest = GetIsAspNetPageRequest(application);
if(isAspNetPageRequest) {
application.Context.Response.Filter =
new ViewStateSeoFilter(application.Context.Response.Filter);
}
}
private bool GetIsAspNetPageRequest(HttpApplication application) {
bool isAspNetPageRequest = application.Context.Handler is System.Web.UI.Page;
return isAspNetPageRequest;
}
// [...]
这篇关于ASP.NET:将 ViewState 移动到页面底部的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:ASP.NET:将 ViewState 移动到页面底部
- C# 中多线程网络服务器的模式 2022-01-01
- 在哪里可以找到使用中的C#/XML文档注释的好例子? 2022-01-01
- C#MongoDB使用Builders查找派生对象 2022-09-04
- WebMatrix WebSecurity PasswordSalt 2022-01-01
- 带有服务/守护程序应用程序的 Microsoft Graph CSharp SDK 和 OneDrive for Business - 配额方面返回 null 2022-01-01
- 良好实践:如何重用 .csproj 和 .sln 文件来为 CI 创建 2022-01-01
- MoreLinq maxBy vs LINQ max + where 2022-01-01
- Web Api 中的 Swagger .netcore 3.1,使用 swagger UI 设置日期时间格式 2022-01-01
- 输入按键事件处理程序 2022-01-01
- 如何用自己压缩一个 IEnumerable 2022-01-01