我有一个用 Dotnet 编写的Web服务,它返回一个字节数组, Web浏览器指出 Excel 并让它打开。
那是幸福的道路。
但是如果我收到错误怎么办?然后我想回复某种错误,让我们说一个人类可读的字符串 我可以返回一个不同的Excel文档,一个带有错误消息,但更喜欢直接在浏览器中显示它。
甚至可能吗?
如果是这样,如何在服务器和客户端上实现它?
答案 0 :(得分:3)
这是网络服务。这意味着即使您的响应内容被解释为字节数组,它仍然包含在HTTP 200 OK响应中。您不必返回HTTP 200 OK。您可以返回任何HTTP 4xx或5xx系列来表示错误。
答案 1 :(得分:1)
抛出一条带有消息的异常。然后在您的客户端捕获异常并将消息放入您的html。
答案 2 :(得分:0)
如果您只能返回字节代码,则应返回带有错误符号的图像的字节代码。它会在网络浏览器上显示。
链接:
https://www.codeproject.com/Articles/15460/C-Image-to-Byte-Array-and-Byte-Array-to-Image-Conv
答案 3 :(得分:0)
您可以将byte
和error
包装在一个对象中并检查error
是否为true,您可以显示错误消息,否则显示excel文件。
public class YourData
{
public byte[] arrBytes {get;set;}
public bool Error {get;set;}
}
如果您收到错误,请将Error
设置为true
,否则为false
并返回此类的object
。
您可以检查Error
true
是否可以显示错误消息。
if(obj.Error)
ShowError();
else
DownloadExcel(obj.arrBytes)