0

我已经生成了一个如下的图像标签:

<td>
    <img src='@item.SourceAddress' alt="@item.Description"/>
</td>

结果是这样的:

<td>
    <img src='C:\Users\leo\Workspace\Team Foundation Server\Sources\HRS\HRS\App_Data\user\Photos\test.jpg' alt="desc"/>
</td>

问题是我只看到空白,根本没有图像(在 Firefox 中我只看到 alt 文本)。路径是正确的。我将标签本身复制img到另一个 html 文件中,我看到图像非常清晰。
可能有帮助的事情:我用Firefox打开了源代码,当我单击图像源时,出现以下错误:

Firefox 不知道如何打开这个地址,因为协议 (c) 没有与任何程序相关联。

顺便说一句,抱歉英语很糟糕。
编辑:我编辑了标题。现在更有意义了!

4

2 回答 2

1

这可能是由于您提供了本地路径名(即 C: 中的目录)而不是通过 Razr 提供的相对路径。如果您在 Firefox 中开始调试,那么控制台输出有时会忽略这一点。

你可以尝试类似的东西:

<img src="@Url.Content(Item.SourceAddress)" alt="desc"/>

并检查 SourceAddress 的格式是否为:

~/MyImages/Photos/test.jpg

还值得检查所有明显的东西,例如双引号而不是单引号等。

于 2013-02-07T11:55:23.937 回答
0

终于知道是什么问题了!

  • 首先,我使用 App_Data 文件夹来存储文件。此文件夹是特殊用途,用于存储一些特殊的数据库文件,IIS 不会直接访问此文件夹。我不得不创建另一个像 Image 这样的文件夹并将文件存储在那里。
  • 第二个问题是我直接从 Root (C:\...) 给出了路径。Web 浏览器无法直接访问服务器文件系统(由于某些安全原因)。因此,我不得不给出路径相对地址。绝对路径应仅由服务器代码使用,而不应在 html 源代码中使用。我设法将绝对路径转换为相对路径,如下所示:
    `public static class HttpServerUtilityExtensions { public static string RelativePath( this HttpServerUtilityBase utility, string path, HttpRequestBase context ) { return path.Replace( context.ServerVariables[ "APPL_PHYSICAL_PATH" ], "/" )。代替( @”\”, ”/” ); } }`
    和: ``
于 2013-02-07T18:59:10.767 回答