C# .NET Webforms -> ajaxcontroltoolkit.net -> AsyncFileUpload, trigger OnClientUploadError serverside
作为参考,这是我在这里讨论的控件:AjaxControlToolKit AsyncFileUpload.
上下文:维护旧的 .NET 网络表单(代码隐藏)应用程序。我被要求显示发生在服务器端的错误。
不能只在后面的代码中设置标签,因为控件执行的是 AsyncFileUpload。
如 API 所述,控件提供:
所以我将它添加到控件中:
1
2 3 4 5 |
<ajaxToolkit:AsyncFileUpload ID="fuImportEpAuth" runat="server"
OnClientUploadStarted="ImportEpAuthStartUpload" OnClientUploadComplete="ImportEpAuthUploadComplete" OnUploadedComplete="fuImportEpAuth_UploadedComplete" OnClientUploadError="ImportEpAuthError" /> |
并在页面中添加了以下javascript:
1
2 3 4 5 6 7 8 |
function ImportEpAuthError(sender, args) { var errorText = args.get_errorMessage(); var errorLabel = document.getElementById(‘cphContent_lblImportWccAuth’); |
代码执行,标签显示错误信息。
请关注:
它包含这条消息:
服务器响应错误:”对象引用未设置为对象的实例。”
我的问题或挑战是:它应该显示我抛出的错误消息。
(此代码在服务器端)
1
2 3 4 5 6 7 8 9 10 |
try
{ // Upload and process file UploadAndProcessFile(importType, fileUpload, sPath, settingsName); } catch (Exception ex) { //throw new Exception(ex.Message, ex); throw new Exception("Please help me stackoverflow, I need to show this message!!!", ex); } |
如果我能解决这个问题,我就可以完成并将修复交付到生产环境中。感谢您的帮助!
删除 InnerException 将导致以下消息:
服务器响应错误://’请帮我stackoverflow,我需要显示这条消息!!!//’
1
2 |
//throw new Exception("Please help me stackoverflow, I need to show this message!!!", ex);
throw new Exception("Please help me stackoverflow, I need to show this message!!!"); |
我现在可以访问错误消息客户端,我现在可以随意显示它。
解决办法是实现:
此解决方案还将回答我在 stackoverflow 上阅读的其他一些问题。请将它们链接到此答案。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/269783.html