Asp.net mvc 如何使用razor引擎将存储在数据库中的html图像显示到视图中

Asp.net mvc 如何使用razor引擎将存储在数据库中的html图像显示到视图中,asp.net-mvc,razor,Asp.net Mvc,Razor,我有一个部分,将用html编辑器创建的html保存到站点控制面板中的数据库中 如果在mysite.com/image/Picture1.jpg中存储了图像,则使用html编辑器在我的html中插入地址为“image/Picture1.jpg”的图像 现在在视图(razor)中,我使用System.Web.HttpUtility.HtmlDecode或@html.Raw(item.content)显示数据库中存储的html内容。如果此内容显示在像mysite.com这样的主页上,则其工作正常 但是

我有一个部分,将用html编辑器创建的html保存到站点控制面板中的数据库中

如果在mysite.com/image/Picture1.jpg中存储了图像,则使用html编辑器在我的html中插入地址为“image/Picture1.jpg”的图像

现在在视图(razor)中,我使用
System.Web.HttpUtility.HtmlDecode
@html.Raw(item.content)
显示数据库中存储的html内容。如果此内容显示在像mysite.com这样的主页上,则其工作正常

但是,如果它在其他区域或控制器或动作中显示,则图像不会显示。因为在这些区域(如mysite.com/desktop),图像地址更改为mysite.com/desktop/image/picture1.jpg


如何显示此html内容而不出现此问题?

当您使用相对URL时,图像将始终相对于显示它们的页面

除非他们在HTML中有绝对URL
mysite.com/image/picture1.jpg
或根相对URL
/image/picture1.jpg
,否则它将不起作用

A:您需要在HTML编辑器中以绝对URL或

或根相关:


在这两种情况下,浏览器都将从网站的根目录进行搜索,而不仅仅是相对于当前页面进行搜索。

不存在任何查找链接的方法或命令,如~/。。。或/。。并更改为site.com/。。。?因为我有许多数据存储在数据库中,这些数据来自我网站的旧版本。现在我对新版本(mvc版本)中的旧数据有了问题,您可以使用
@URL.Content(“~/”)将网站基本URL注入页面元素,或者在一个小页面脚本中分配一个注入的变量,但听起来您需要在显示HTML之前对其进行处理。它们只是以
等形式存储在html中吗?是的,我需要处理html,但我想可能有办法解决这个问题。因为有1000多个页面需要检查。如果它们是标准的
URL,并且有固定版本。需要一个示例HTML页面来提供示例
mysite.com/image/picture1.jpg
/image/picture1.jpg