2015-04-06 113 views
1

我想嵌入SVG直接進入我的ASP.net MVC的視圖,使輸出看起來是這樣的:嵌入SVG在ASP.net頁面

<html> 
    <body> 
     <svg> ... </svg> 
    </body> 
</html> 

使用PHP,我會做這個,像這樣:

<? include('image.svg'); ?> 

我試過@Html.Partial('image.svg')但出現錯誤。有沒有辦法解決這個或我可以嘗試的另一種方法?

回答

5

嵌入SVG的成CSHTML視圖文件,而不是一個.svg文件,那麼你就應該能夠使用@ Html.Partial來渲染它。

你的部分則看起來像

@Html.Partial("~/Views/pathtosvg/svg.cshtml")

+0

看起來這是最好的解決方案... – flyingfisch

+0

這不可能是最好的解決方案。如果你有+200個SVG文件怎麼辦?你打算將它們全部重命名並保留它們的副本嗎?也許通過創建一些任務,但在我看來,必須有更好的解決方案 –

+0

我給這個答案增加了一些東西。如果你有非常大的svg文件,這個解決方案將不起作用,你應該在你的代碼中使用@ Html.Raw(File.ReadAllText(Server.MapPath(「〜/ image.svg」)))。 – Setmax

1

你可以使用文件包括相同的PHP文件?

例子:

<!--#include file="image.svg"--> 

這句法應的工作方式與PHP的包括,但asp.net

+0

這只是服務於瀏覽器的html評論: - \ – flyingfisch

+0

這應該包括在asp.net中的文件,我剛纔試過了。這是在這裏解釋:http://www.w3schools.com/asp/asp_incfiles.asp –

+0

也許它不適用於MVC和剃鬚刀? – flyingfisch

7

重命名SVG文件,並使用Html.Partial應該做的伎倆,但我不喜歡是爲了實現它重命名文件。所以,這樣,你可以保持你的文件原樣。

@Html.Raw(File.ReadAllText(Server.MapPath("~/image.svg")))