在 MVC4 的 Razor 视图中显示来自数据库的 HTML 时图像路径不正确

Image Path incorrect when displaying HTML from database in a Razor View in MVC4

如果有一些 HTML 存储在数据库中。我在我的视图文件中使用以下代码呈现 HTML。

@Html.Raw(Model.Content.ToString())

这工作正常,但有一个问题,图像路径没有正确渲染。在我的 HTML(存储在数据库中)图像定义为:

<img src="~/images/logo.png" />

但是在 HTML 中呈现时,它会在图像未显示的路径之前附加网站的 URL。

http://www.hostname.com/~/images/logo.png

如果需要任何其他信息,请发表评论。 谢谢你的时间。

通常是 Razor 解释 "~/images/" 并将其转换为相对路径。因为您要自己渲染 HTML(在 Model.Content.ToString() 中),所以您将跳过此功能。

如果您需要将 HTML 存储在数据库中,您可能不应该使用 ~/images/ 语法。如果您总是在网站的根目录下发布您的应用程序,那么只需使用 /images/ 代替(例如 www.mysite.com/images 而不是 www.mysite.com/myapp/images)