Asp.net 在Web上丢失文本输入

Asp.net 在Web上丢失文本输入,asp.net,user-interface,text,Asp.net,User Interface,Text,这种事发生在你身上多少次了 您正在网页上的表单中键入一长段文本,然后单击“下一步”或“提交”等。然后发生错误。所以你点击“上一步”来修复错误,你的整个spiel就消失了 今天我听到一位同事在骂我们的帮助台软件,因为他输入了一个很长的解决方案,结果出错,丢失了文本 我告诉他这件事在我身上发生过很多次,如果我注意到我打字太多,我会打开记事本,把所有的内容都打进去,然后复制下来 所以,我想知道web开发人员是否可以做些什么来防范这种情况?我在编程时从未考虑过这一点,但我希望将来能注意到这一点 我们能做

这种事发生在你身上多少次了

您正在网页上的表单中键入一长段文本,然后单击“下一步”或“提交”等。然后发生错误。所以你点击“上一步”来修复错误,你的整个spiel就消失了

今天我听到一位同事在骂我们的帮助台软件,因为他输入了一个很长的解决方案,结果出错,丢失了文本

我告诉他这件事在我身上发生过很多次,如果我注意到我打字太多,我会打开记事本,把所有的内容都打进去,然后复制下来

所以,我想知道web开发人员是否可以做些什么来防范这种情况?我在编程时从未考虑过这一点,但我希望将来能注意到这一点


我们能做什么?

ASP.NET通过维护Web表单的ViewState自动完成这一任务

检查是否在W3学校讨论了这个问题

因此,我的建议是:

  • 确保对需要用户输入的表单(尤其是那些需要输入大量内容的表单)启用ViewState

  • 通过放入运行服务器端的验证器,然后输入无效数据,来测试这种可用性问题。服务器响应后,页面上输入的数据应保持完整


  • ASP.NET通过维护Webform的ViewState自动执行此操作

    检查是否在W3学校讨论了这个问题

    因此,我的建议是:

  • 确保对需要用户输入的表单(尤其是那些需要输入大量内容的表单)启用ViewState

  • 通过放入运行服务器端的验证器,然后输入无效数据,来测试这种可用性问题。服务器响应后,页面上输入的数据应保持完整


  • 即使发生错误,大多数好的框架也会维护您的输入。Asp.net也这样做。作为开发人员,在接受输入时,不要重定向到其他页面

    Asp.net将从viewstate获取数据并将其放置到位

    出现您提到的问题(需要单击“上一步”),是因为您的应用程序可能会向您显示不同的页面

    验证错误(在我看来)最好显示为:

  • 在页面的顶部
  • 在出错的元素旁边
  • 作为情态动词
  • 这将保留viewstate,用户不必重写数据


    这在很多php框架中也会发生。

    大多数好的框架即使在发生错误后也会维护您的输入。Asp.net也这样做。作为开发人员,在接受输入时,不要重定向到其他页面

    Asp.net将从viewstate获取数据并将其放置到位

    出现您提到的问题(需要单击“上一步”),是因为您的应用程序可能会向您显示不同的页面

    验证错误(在我看来)最好显示为:

  • 在页面的顶部
  • 在出错的元素旁边
  • 作为情态动词
  • 这将保留viewstate,用户不必重写数据


    这在很多php框架中都会发生。

    有两种关键的方法:

  • 通过延长会话时间(错误)或让页面在会话过期(更好)之前轮询服务器来保持会话的活动状态

  • 提交时,在处理表单之前处理会话。如果,正如我所怀疑的,这与用户注销有关,那么在考虑触摸表单数据之前,请手头上保留一个cookie,以确保您可以重新登录该用户


  • 最重要的是(对于以上两种情况),在提交表单时保存表单状态通过这种方式,即使某些内容发生爆炸,您也可以提供“返回表单”链接,并将所有数据直接输入表单。

    有两种关键方法:

  • 通过延长会话时间(错误)或让页面在会话过期(更好)之前轮询服务器来保持会话的活动状态

  • 提交时,在处理表单之前处理会话。如果,正如我所怀疑的,这与用户注销有关,那么在考虑触摸表单数据之前,请手头上保留一个cookie,以确保您可以重新登录该用户

  • 最重要的是(对于以上两种情况),在提交表单时保存表单状态这样,即使某些内容发生爆炸,也可以提供“返回表单”链接,并将所有数据直接输入表单

    所以你点击“上一步”来修复错误,你的整个spiel就消失了

    与Firefox不同(通常…),它会保留键入的数据,并在返回上一页时显示出来。
    除非某些愚蠢的JavaScript在获取焦点或类似信息时删除字段内容

    更好的是,我用的都是文字!扩展,它在文本区域添加了一个按钮,允许我在一个方便的真实文本编辑器上编辑文本。。。(并在每次保存时更新字段)

    现在,对于其他用户,您必须遵循上述建议

    但我要为另一种常见情况添加一些内容:您在浏览器中键入了很长的内容,无意中关闭了选项卡/窗口,或者浏览器/计算机崩溃等。
    有一个很好的特性,使用Ajax定期将textarea的内容发送到服务器。因此,如果您返回页面,即使您尚未提交任何内容,服务器也可以恢复您正在进行的工作

    所以你点击“上一步”来修复错误,你的整个spiel就消失了

    与Firefox不同(通常…),它会保留键入的数据,并在返回上一页时显示出来。
    除非某些愚蠢的JavaScript在获取焦点或类似信息时删除字段内容

    更好的是,我用的都是文字!扩展,它在文本区域添加了一个按钮,允许我在一个方便的真实文本编辑器上编辑文本。。。(并更新每个