如何使用C#提供SVG,以便它将呈现为CSS背景图像

时间:2014-01-23 11:52:56

标签: c# css asp.net-mvc svg

我有一个生成SVG输出的服务器端脚本。我正在使用MVC3,在RenderSVG方法中,我返回SVG的内容,如下所示:

return Content(svgContent, "text/xml; charset=utf-8");

在这种情况下,svgContent只是SVG文件的内容。如果我直接导​​航到我的RenderSVG方法,它会按预期渲染我的图像。但是,如果我设置与CSS标记的background-image属性相同的URL,则不会呈现。我使用的是最新版本的Chrome,可以确认正常的SVG文件正常呈现为背景图像。但是这个服务器端版本没有。

任何想法我做错了什么?以下是原始图像和服务器端版本的响应标头。在每种情况下,图像的内容都是相同的。

原始回复标题

HTTP/1.1 304 Not Modified
Last-Modified: Mon, 23 Sep 2013 04:56:16 GMT
Accept-Ranges: bytes
ETag: "018f63b19b8ce1:0"
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET

日期:星期四,2014年1月23日11:38:38 GMT

脚本响应标题

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-AspNetMvc-Version: 4.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Thu, 23 Jan 2014 11:39:29 GMT
Content-Length: 490

1 个答案:

答案 0 :(得分:9)

尝试使用"image/svg+xml"作为svg的mime类型。

return Content(svgContent, "image/svg+xml; charset=utf-8");

(见http://www.w3.org/TR/SVG11/mimereg.html