Las*_*eak 2 asp.net html5 svg asp.net-mvc-3
尝试过W3学校列出的所有嵌入方法,然后再尝试一些.即使提供宽度和高度,资源管理器也会显示不正确的大小,chrome和firefox只是提示下载.使用Visual Studio 2010内置的开发服务器,可能需要添加mime类型以供支持,不要去哪里.
SVG文件在我的内容文件夹中,我在视图中创建html,其中ImageFileName是"filename.svg":
<object data="/Content/ExternalCats/@RootCat.ImageFileName" type="image/svg+xml"></object>
Run Code Online (Sandbox Code Playgroud)
要么
<embed src="/Content/ExternalCats/@RootCat.ImageFileName" width="300" height="100"
type="image/svg+xml"
pluginspage="http://www.adobe.com/svg/viewer/install/" />
Run Code Online (Sandbox Code Playgroud)
您可以尝试<svg>
直接嵌入到HTML中.现代浏览器支持它:
@Html.Raw(File.ReadAllText(Server.MapPath("~/content/externalcats/" + RootCat.ImageFileName)))
Run Code Online (Sandbox Code Playgroud)
或者使用正确的MIME类型(image/svg+xml
)提供SVG :
public ActionResult Svg()
{
return File(Server.MapPath("~/content/test.svg"), "image/svg+xml");
}
Run Code Online (Sandbox Code Playgroud)
然后:
<object data="@Url.Action("svg")" type="image/svg+xml">
<embed src="@Url.Action("svg")" type="image/svg+xml"/>
</object>
Run Code Online (Sandbox Code Playgroud)
或者如果您使用的是IIS 7.0+,则可以使用扩展名定义静态MIME映射.svg
:
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true"/>
<staticContent>
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
</staticContent>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)