【问题标题】:Images Not Showing in MVC图像未在 MVC 中显示
【发布时间】:2013-08-19 15:33:55
【问题描述】:

我正在处理 MVC4 项目并面临一个问题。我正在处理的项目是在 Web 表单中开发的。页面的 html 已经保存在数据库中。我正在从数据库中获取这个 html 并在视图上显示它。现在的问题是这个 Html aslo 包含图像和链接,这些在 Web 表单应用程序中工作正常,但在 MVC 图像和链接中不起作用,即图像由于路径无效而无法加载,尽管我制作了相同的文件夹结构。这是一个例子。

假设我在文件夹 App_Themes/Theme1/Img/download_icon.gif 中有一张图片。现在在MVC项目中,如果我给这个图像像/App_Themes/Theme1/Img/download_icon.gif这样的src,它会正确加载,但是如果我给它像App_Themes/Theme1/Img/download_icon.gif这样的src,它不会加载,这是保存在数据库中。我的问题是如何正确加载来自 html 中 Db 的所有图像?

【问题讨论】:

  • 贴出你用于路径的代码

标签: asp.net-mvc


【解决方案1】:

你遇到了一个棘手的场景。将 Html 标签保留在数据库中始终是一种不好的做法,因为它可能会在将来导致此类问题,这让当前从事该工作的开发人员感到头疼。根据我的观点,没有解决方案,但我建议您解决这个问题。这是虚拟目录的问题,希望Url.content能够解决。

您从数据库中获取 html 的任何方式。所以我相信你有类似的东西。 string htmlContent = getHtmlforPage1() 它会为您返回第一页的所有 html,然后您使用 HtmlString() 在您的视图中显示它。

您可以将<img src=blah\blah.img /> 替换为"<img src="+ Url.Content(blah\blah.img") />。你所需要的只是写下一个函数来实现这一点。

这个问题会告诉你对 url.content() 的需求 why use @Url.Content

如果可能,请更改避免将 html 存储在数据库中

【讨论】:

  • 嗯,我知道 Url.Content,这正是我想做的,但我用 Url.Content 硬编码了一个图像,它没有显示我写了这个 如果我这样写 那么它是显示
  • 是的。 @Url.Content 用于 Razor。但是我们需要用控制器中的值替换,所以需要使用Url.Content
  • 有没有类似 ActionAttribute 的东西,我可以通过它获取图像路径并解决它。
  • 动作属性就像一些需要在执行动作之前或之后触发的东西。它可以用于授权等。我认为你不能这样做。如果可能的话分享代码
猜你喜欢
  • 2015-11-13
  • 1970-01-01
  • 1970-01-01
  • 2011-07-31
  • 2014-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多