我最近开始将ASP.NET项目从.NET 1.1版迁移到4.0版。该系统目前在客户现场运行并正常运行。 当我通过VS向导迁移解决方案时,我没有收到任何错误。 错误是没有服务器控件事件,视图状态始终为空。
我已尝试将ViewStateMode
明确设为已启用,AutoEventWireup
为真。但遗憾的是无效。该项目不是作为Web应用程序编写的(转换不能解决问题)。
我还检查是否所有服务器控件都设置了(他们这样做)。
该项目有自己的母版页系统,System.Web.UI.Page上有一个厚层可能会破坏很多东西,但到目前为止我还没有找到麻烦的来源。 / p>
我是否应该检查任何特定设置(即自.NET 1.1以来默认值已更改),或者您能给我一些提示,为什么会发生这种情况?
编辑1:这些是点击LinkButton时发布的值:
CRC = - 2134936892&安培;的 _ EVENTTARGET = M页面%24BC%24TestButton&安培;的 的 _EVENTARGUMENT =&安培;的 _ VIEWSTATE =&安培;的 的 _EVENTVALIDATION =%2FwEWAwL%2BraDpAgLB49K8AwKy8rFAt4Axk3NlUEWxrtY%2FRtaexH%2F634CkJe6G9Im5EOPXtVw%3D
编辑2:我仔细研究了自定义母版页机制,发现它在跳转到右页之前大量使用了Server.Transfer(...)
方法。这是缺少ViewState的可能原因吗? (那么EventTarget总是保持不变会很奇怪)更重要的是,1.1和4.0之间是否会有任何变化?
答案 0 :(得分:4)
你看过这个链接了吗? http://www.asp.net/whitepapers/aspnet4/breaking-changes
在页面深处声明,当FORM
的操作为空时,会发生以下情况:
这是我们最后的手段,那是在找到这份文件之前。
答案 1 :(得分:1)
这可能会或可能不会解决问题,但如果您在堆栈Why is the form action attribute empty on production server?上查看此帖子,它会讨论ASP.NET 3.5 sp1中引入的重大更改,该更改以表单的action属性为中心 - 它可能是一个开始的地方!
过去我必须做类似的事情,这可能是一个艰苦的过程,尤其是当你拥有“自定义母版页”功能时(我必须这样做)。我选择了一个非常基本的页面 - 我们有一个BasePage,它由一个CustomPage继承,它可以由AdminBasePage继续,然后是Admin页面等。如果你选择一个相对简单的页面并在早期设置一个断点。页面构造的过程尽可能,然后只是F10一直到它呈现它可以显示事情被调用两次(在我们的情况下这发生了很多,并且是值被覆盖的一些问题的原因等)。
为了回应您的server.transfer问题“编辑2”,我找到了这个资源http://www.codeproject.com/Tips/74472/ViewState-and-Server-Transfer-Best-practices,它解释了如何确保(希望)viewstate和server.transfer继续协调工作。我每天都会不断回答这个问题 - 请记下更多关于你如何上场的更新。你有最深切的同情!
答案 2 :(得分:1)
迁移完成后,
如果是网络应用程序:
这是一份清单:
尝试在设计模式下更改.NET服务器控件的值 Visual Studio 2010.(从它的框架4.0开始,您将使用它 视觉工作室2010)改变它包括:改变一个大小 服务器控件或任何其他属性。这将迫使 设计师生成服务器端设计器代码。
确保清理解决方案并重建它。我曾经有类似的问题,他们过去常常在设计师改变设计后修复,偶尔会给出 错误。它在迁移期间没有出错。
保存表单并进行测试。
在Firefox中使用Firebug检查是否有 加载网页时出现javascript脚本错误。
希望这会有所帮助。