ASP.NET 1.1到4.0迁移:事件不工作

前端之家收集整理的这篇文章主要介绍了ASP.NET 1.1到4.0迁移:事件不工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近开始将ASP.NET项目从.NET版本1.1迁移到4.0.该系统目前运行在客户现场并进行工作.
当我通过VS向导迁移解决方案时,我没有任何错误.
错误是没有服务器控制事件工作,并且viewstate始终为空.

我已经尝试明确地将ViewStateMode设置为Enabled,AutoEventWireup设置为true.不幸的是没有任何效果.该项目不是作为Web应用程序编写的(转换不能解决问题).

我也检查是否所有的服务器控件hav ID设置(他们做).

该项目有自己的母版页系统,而在System.Web.UI.Page上有一个很厚的层,可能会打破很多东西,但到目前为止我还没有找到麻烦的根源.

有什么特别的设置,我应该检查(即默认值从.NET 1.1更改),或者你能给我一些提示,为什么会发生这种情况?

编辑1:这些是当点击一个LinkBut​​ton时发布的值:

CRC = -2134936892&安培; _EVENTTARGET = M页面$$BC&TestButton放大器; _EVENTARGUMENT =安培; _VIEWSTATE =安培; _EVENTVALIDATION = / wEWAwL + raDpAgLB49K8AwKy8rFAt4Axk3NlUEWxrtY / RtaexH / 634CkJe6G9Im5EOPXtVw =

编辑2:我仔细检查了自定义母版页机制,发现在跳转到正确的页面之前,它广泛使用了Server.Transfer(…)方法.这是缺少ViewState的可能原因吗? (那么EventTarget总是会持续存在就会很奇怪)更重要的是,1.1和4.0之间是否有变化?

解决方法

你有检查这个链接吗? http://www.asp.net/whitepapers/aspnet4/breaking-changes

页面中更深入地说,当FORM的动作为空时,会发生以下情况:

>将.aspx页面发送到表单元素的action属性设置为“”的浏览器.
>表单发回ASP.NET.
>托管HTTP模块读取实体主体的某些部分.例如,一个模块读取Request.Form或Request.Params.这会导致POST请求的实体正文被读入托管内存.因此,实体主体不再可用于在IIS 7或IIS 7.5集成模式下运行的任何本机代码模块.
> IIS DefaultDocumentModule对象最终运行并创建对Default.aspx文档的子请求.然而,由于实体主体已经被托管代码读取,所以没有可用于发送给子请求的实体主体.
>当HTTP流水线为子请求运行时,.aspx文件的处理程序在处理程序执行阶段运行.
>因为没有实体体,没有表单变量,没有视图状态,因此没有可用的.aspx页面处理程序的信息来确定应该引发什么事件(如果有的话).因此,没有运行受影响的.aspx页面的回发事件处理程序.
您可以通过以下方式解决此问题:

编辑:我们在两年前迁移到3.5时,遇到类似的问题,我们所做的是将VS2005与Web App项目类型作为桥梁,因此我们的迁移路径是:

> 1.1〜2.0
> 2.0〜3.5

这是我们最后的手段,那就是在找出这个文件之前.

猜你在找的asp.Net相关文章