【问题标题】:ASP.Net file upload with an empty posted files collection带有空的已发布文件集合的 ASP.Net 文件上传
【发布时间】:2010-05-24 15:51:04
【问题描述】:

我有一个作为表单一部分的 ASP.NET 文件上传控件。文件上传控件位于内容页面上,而表单定义位于整个站点的母版页上。我在母版页的表单中添加了 multipart/form-enc。

当我从 jQuery UI 显示一个对话框时,我正在使用 jQuery 提交表单。

当我发布时,没有文件返回到服务器。文件上传控件没有文件,HttpFileCollection 为空。如何找到发布的文件?

【问题讨论】:

  • 您在对话框中放置的所有其他控件在回发时是否也是空的?
  • 你有没有运行 fiddler 来验证浏览器发布的文件。这是提琴手fiddler2.com/fiddler2的链接

标签: asp.net jquery file-upload jquery-ui-dialog jquery-forms-plugin


【解决方案1】:

大多数对话框获取您的内容,将其包装起来,然后将结果放在页面中 </body> 之前...这是 ASP.Net 中的一个问题,因为它在 <form></form> 之外,它需要在里面包含在 POSTed 数据中。

当你创建对话框时,让它在完成时附加在<form> 中,而不是<body>,例如这是你对jQuery UI dialog 所做的:

$("#myDiv").dialog({ ...options... }).parent().appendTo("form:first");

现在它已被移动到<form> 中,它应该可以正确发布。

【讨论】:

  • 我认为是这样的,因为所有表单值都是空白的。我已经添加了附加代码,但仍然是同样的问题。
  • 您的页面上是否只有一个
    标签?如果是这样,那么 .appendTo() 代码应该可以工作 - 否则您需要指定实际的表单 ID,例如 .appendTo('#formidhere');
  • @Nicholas - OP 正在使用网络表单...只有一个 <form> 标签,这是定义特征之一 :)
  • @Nicholas - 不使用 ASP.Net WebForms(他使用的是文件上传控件),除非你真的在乱搞。
  • Nick,jQuery 不关心它是服务器端的
    标签还是普通的表单标签。您的页面上可以有多个表单标签,只要只有一个是 runat="server"。我已经通过 PayPal 集成等方式完成了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-07
  • 2011-02-26
  • 2011-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多