C# 如何在Html报表中添加Html元素

C# 如何在Html报表中添加Html元素,c#,html,console,C#,Html,Console,我有一个应用程序,我们将输出写入Html文件。用于编写我们使用的文本 Console.write("Added to Report"); 现在我想添加一个图像,所以我使用类似这样的东西 string imageTag = "<img src=\"Winter.jpeg\" />"; Console.WriteLine(WebUtility.HtmlDecode(imageTag)); 因此,图像没有添加到报告中,我们只看到字符串 我有什么办法可以在报告中添加这一点吗 string

我有一个应用程序,我们将输出写入Html文件。用于编写我们使用的文本

Console.write("Added to Report");
现在我想添加一个图像,所以我使用类似这样的东西

string imageTag = "<img src=\"Winter.jpeg\" />";
Console.WriteLine(WebUtility.HtmlDecode(imageTag));
因此,图像没有添加到报告中,我们只看到字符串

我有什么办法可以在报告中添加这一点吗

string imagePath = string.Format(@"{0}\Resources\DashboardScreenshot\{1}.png", AppDomain.CurrentDomain.BaseDirectory, imageName);
            bmpCrop.Save(imagePath, ImageFormat.Png);
            string imageTag = String.Format("<img src=\"{0}\" alt=\"{1}\" />",imagePath, imageName);
            Console.Write(imageTag);
string imagePath=string.Format(@“{0}\Resources\DashboardScreenshot\{1}.png”,AppDomain.CurrentDomain.BaseDirectory,imageName);
bmpCrop.Save(imagePath,ImageFormat.Png);
字符串imageTag=string.Format(“,imagePath,imageName);
Console.Write(imageTag);

您不需要在此处使用
HtmlDecode
。因为你的标签没有什么可解码的

当你写的东西是C#中的
转义序列
,或者任何在C#中不会被视为文本的东西时,使用它,只有这样你才应该使用它

以下是我的测试:

string imageName = "img.jpg";
string imagePath = @"C:\xxxx\xxxxxxxx\Downloads\img.jpg";
string imageTag = String.Format("<img src=\"{0}\" alt=\"{1}\" />", imagePath, imageName);
Console.Write(imageTag);

File.WriteAllText("file.html", imageTag);
string imageName=“img.jpg”;
字符串imagePath=@“C:\xxxx\xxxxxxxx\Downloads\img.jpg”;
字符串imageTag=string.Format(“,imagePath,imageName);
Console.Write(imageTag);
File.writealText(“File.html”,imageTag);

很好,我在浏览器上有图像。

显然,您是HTML-编码的您的内容在写入HTML文件之前显示给我们的代码块之外的某个地方

那不行。如果要将文字HTML标记添加到HTML文件中,则不能对其进行HtmlEncode。²只能对“文本部分”进行编码,即不包含HTML标记的部分:

Console.WriteLine(WebUtility.HtmlEncode("Added to Report. Note that 3 < 5."));
Console.WriteLine("<img src=\"Winter.jpeg\" />");
Console.WriteLine(WebUtility.HtmlEncode(“添加到报告中。注意3<5”);
控制台。写线(“”);

我的猜测是,插入
(参见您对Shaharyar答案的评论)的同一代码块也会执行(意外的)HTML编码。如果您还不清楚如何解决这个问题,请向我们展示代码的这一部分


²……不,
编码(解码(someText))!=一些文本(一般来说),所以先对其进行解码的解决方法——正如您所尝试的那样——不起作用。

Yes同意这一点。但是有什么方法可以在html报告中添加它吗?添加它而不解码输出是什么?它没有显示您定义的
图像
,或者它甚至没有解释
图像标记
?您可以分享如何将其写入文件的代码吗?我想您有
图像格式
问题。尝试
jpg
而不是
jpeg
我必须在哪里设置?也许可以帮助我显示的代码是我正在编写的唯一代码。实际上,我正在运行一个XUNIT框架,当测试完成时,我会得到html格式的输出。现在,如果我想获得文本,我写console.write,但现在当案例运行时,我想在报告中添加图像。@Moiz:这就解释了:xUnit可能获取控制台输出,HtmlEncodes并将其放入报告中。除非您可以调整xUnit使其不对控制台输出进行HtmlEncode,否则我想您可能运气不好。感谢Heinzi,xUnit有一个xslt文件创建了标记。我能试试吗?
Console.WriteLine(WebUtility.HtmlEncode("Added to Report. Note that 3 < 5."));
Console.WriteLine("<img src=\"Winter.jpeg\" />");