1

我有一个网络表单应用程序。

该页面有一个 from 其中包含一组文本框和一个ASP:FileUploader

一个名为“上传”的按钮将上传文件与保存整个表单分开。

我设置了一个 httpHandler 来分块上传文件,它应该在用户单击“上传”后触发。

我制定的唯一方法是PostBackURL在“上传”按钮中设置属性。例如

PostBackURL = ".upload"

它映射到 httpHandler 的路径。

但我的问题是“PostBackURL”是一个重定向,它确实会触发 httpHandler,但它会指向“.upload”页面(其内容为空),并且用户在其他文本框中丢失了信息。

那么触发 httpHandler 并让浏览器停留在当前页面的最佳方法是什么?iframe 是唯一的选择吗?

4

1 回答 1

0

要发布到隐藏<iframe>元素,我一直遵循的一般模式是:

  1. 将表单的目标设置为指向<iframe>元素的名称。(通常,<iframe>出于旧习惯,我会给出相同的“name”和“id”值;可能没有必要。)

  2. 张贴表格。这将启动 HTTP 事务,但不会吹走表单所在的页面。

  3. 对 POST的响应应该是一个除了一些 JavaScript 之外什么都没有(或几乎什么都没有)的页面。该代码可以与父页面对话,告诉它文件上传存在问题(例如,您想要一个图像文件,并且发布的文件是文本)或上传成功。在任何一种情况下,父页面都可以使用错误消息或某些成功消息进行自我更新。

  4. 此时,可以清除表单“目标”属性。

<form>要“正常”发布时,您可能希望禁用该文件<input>。(取决于你的情况。

于 2012-04-27T14:23:30.647 回答