【问题标题】:How to raise error on image upload failure in Ajax Html Editor Extender?如何在 Ajax Html Editor Extender 中引发图像上传失败错误?
【发布时间】:2013-07-17 20:25:29
【问题描述】:

我正在尝试使用 html 编辑器扩展器上传图像文件。到目前为止一切正常,我可以将文件保存在ImageUploadComplete 事件中。但是我不确定如果图像上传由于某种原因失败,如何向 UI 提出错误并提醒用户。

非常感谢您的帮助。谢谢!

更新:我们使用 MS 企业库进行异常处理。在正常的回发错误中,首先记录异常并将被重定向到自定义错误页面。使用 HTMLEditorExtender 的问题是:

  1. 出错时重定向不起作用
  2. fileupload 控件显示错误的上传状态 - 即使在失败的情况下也“已上传”。

    Public Sub HTMLEditor_ImageUploadComplete(sender As Object, e 作为 AjaxControlToolkit.AjaxFileUploadEventArgs) 处理 HTMLEditor.ImageUploadComplete

    HTMLEditor.AjaxFileUpload.SaveAs("D:\Uploads\" + Path.GetFileName(e.FileName))

    结束子

【问题讨论】:

  • 你想通过代码隐藏还是客户端来做?您能否向我们展示您目前拥有的代码?
  • 我能够使用 try catch 块捕获代码中的错误,但问题是我无法重定向到错误页面或在文件上传控件中显示正确的状态。谢谢。

标签: asp.net ajax ajaxcontroltoolkit htmleditorextender


【解决方案1】:

由于这是一个服务器端控件,您应该能够像在服务器端报告其他任何错误一样(即带有红色前景色且在发生错误之前不可见的 ASP.NET Label 控件),如下所示:

<asp:Label id="ErrorLabel" runat="server" ForeColor="Red" Visible="False"/>

然后在扩展器控件的OnImageUploadComplete 属性中引用的方法上,您可以将错误信息定向到此错误标签控件。

【讨论】:

  • 我尝试使用标签控件并在出错时更改控件文本/可见性。不幸的是,UI 上没有显示任何更改,因为编辑器是一个 ajax 控件,并且在出错时不会刷新页面。谢谢。
【解决方案2】:

您可以简单地抛出一个异常,它会在HtmlEditorExtender 使用的AjaxFileUpload 框中显示为上传失败。

如果您想自己处理错误,您需要使用AjaxFileUploadOnClientUploadError 客户端事件或下载AjaxControlToolkit 源代码并根据需要对其进行编辑。

如果您的环境无法响应 HTTP 状态并出错,那么您可以使用 Context.Response.Write() 手动响应并编写 AjaxFileUpload 期望的相应 JSON。然后相应地处理其客户端事件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多