6

我的问题

我设法回答自己,但是同一组功能还有另一个问题。出于某种原因,已发布文件的保存事件的第一次回发命中了未设置为对象错误实例的 Ol' 对象,但在第二次尝试上传文件并触发我的保存事件时(转换为 byte[]存储为 SQL Server BLOB)它完成了所有应该做的事情。

这里同样的问题

有一个使用 AJAX AsyncUpload 控件的好建议,但是我坚信消除原因而不是解决问题。我将继续沿着这条路线走下去,以最好地理解 asp.net 等。

你们中是否有一个向导可以帮助我确定为什么我在第一次回发时得到“object ref not set to inst of obj”错误,但在第二次它工作正常。内容页面有一个母版页,它将内容页面包装在更新面板中。这不是我的决定。还有一个更新面板,其中包含针对我的保存事件的回发触发器。

你的想法是什么?

4

2 回答 2

13

问题(如在这里看到的http://forums.asp.net/t/1060363.aspx)似乎是当您在周围面板上使用可见性属性时(因为您似乎来自链接的问题)。

建议的解决方法是改用 CSS 可见性,因此使用它使其不可见 -

<asp:Panel ID="pnlUpload" runat="server" class="workerDetailsPanelLeft" style="display:none">

线程对此的解释是

如果您的容器设置为不可见,则上传控件实际上并未呈现为 HTML,导致表单的 enctype 未设置为 enctype="multipart/form-data",导致文件上传控件无法将所选文件回传到服务器。解决方法是确保 FileUpload 控件呈现为 HTML(通过将其样式设置为 display:none 而不是 Visible=false),或者通过手动设置 enctype

因此,另一种解决方法是将您的表单标签更改为此

<form id="form1" enctype="multipart/form-data" runat="server">

我认为其中任何一个都可以解决您的问题。

于 2012-07-20T09:13:42.277 回答
5

您可以通过 Page_Load 事件上的代码执行相同的操作。输入此代码,它将解决问题。

Page.Form.Attributes.Add("enctype", "multipart/form-data");
于 2014-05-08T05:37:37.180 回答