迁移:ASP.NET 1.1到ASP.NET 2.0,破坏回发

时间:2009-05-13 08:47:59

标签: asp.net migration postback

我们最近刚刚将我们的Web应用程序从.NET 1.1迁移到.NET 2.0。

Web应用程序最初是使用Visual Studio 2003在.NET 1.1中编写的。要迁移它,我们将解决方案转换为VS2005。

除了RESX不兼容和破坏的日历控件等一些小问题之外,Web应用程序也能正常工作。

但是,我们今天刚刚测试了它,一些回发功能突然被打破了。特别是“文件浏览器”之一。当用户点击浏览按钮时,将打开一个新窗口(一个自定义页面),允许他浏览该文件,然后将PATH传递给父页面然后保存在文本框中,然后它将回发到在路径上做一些验证。但是,在POSTBACK上,存储在文本框中的路径现在已经消失,并被“默认”路径替换。

在从1.1迁移到2.0可以打破回发时,我们应该注意什么?

谢谢! :)

1 个答案:

答案 0 :(得分:0)

这是ASP.NET 2.0中的设计问题。

我的文本框设置为只读。这种行为是在ASP.NET 2.0中设计的,其设计理念是不应在客户端通过恶意代码修改ReadOnly TextBox。

解决方法: 您应该在运行时设置,而不是在设计时设置readonly属性。

TextBox1.Attributes.Add(“readonly”,“readonly”);

参考文献: http://www.dotnetspider.com/resources/3120-ASP-NET--TextBox-Ready-Only-losing-client-side-changes-values-across-postback.aspx

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.readonly.aspx