ASP.Net:<img/>标记内的Svg图像。

时间:2012-11-21 18:54:53

标签: asp.net html svg

我有一个svg图像,我想在标签中显示,但不知何故,它不会在任何浏览器中呈现。我甚至尝试将以下行添加到web.config文件中。:

 <staticContent>
  <mimeMap fileExtension=".svg" mimeType="image/svg+xml"/>
</staticContent>

仍然不起作用。任何人都可以帮我这个吗?

2 个答案:

答案 0 :(得分:1)

http://www.sitepoint.com/add-svg-to-web-page/

上的第5项
  1. 使用&lt; img&gt;标签
  2. SVG可以像任何其他图像一样添加到您的网页: view plainprint?

    <img src="image.svg" />  
    

    如果需要,可以添加常用的宽度,高度,alt和其他属性。

    你可能想知道为什么img在这个列表中不是#1。出于安全原因,浏览器会在使用img标记添加到页面时禁用SVG脚本,链接和其他类型的交互。此外,IE9,Chrome和Safari不会将样式表规则应用于SVG,如果它们是在单独的CSS文件中定义的。

    也许作为一种解决方法,您可以执行以下操作:

    <ItemTemplate>
        <%# Container.DataItem.ToString().Contains(".svg") ? 
                "<object type='image/svg+xml' data='" + Container.DataItem + "'>Your browser does not support SVG</object>" : 
                "<img src='" + Container.DataItem + "' />"
    </ItemTemplate>
    

答案 1 :(得分:0)

在“aspx”页面中使用:

<asp:Repeater ID="RepeaterImages" runat="server">
    <ItemTemplate>
        <asp:Image ID="Image" runat="server" ImageUrl='<%# Container.DataItem %>' />
    </ItemTemplate>
</asp:Repeater>

在您的代码文件“aspx.cs”中:

protected void Page_Load(object sender, EventArgs e)
    {

string[] filePaths = Directory.GetFiles(@"C:\YourFolder\");
                List<String> images = new List<string>(filePaths.Count());
                foreach (string item in filePaths)
                {
                         images.Add(String.Format("~/yourVirtualImgFolder/"+Path.GetFileName(item)));
                }

                RepeaterImages.DataSource = images;
                RepeaterImages.DataBind();
}

请注意,您应该创建一个虚拟文件夹“ yourVirtualFolder http://msdn.microsoft.com/en-us/library/ms178477.aspx#