Server.MapPath生成错误的URL

时间:2018-08-30 10:34:44

标签: c# html asp.net-mvc

以下代码从imgURL的sql数据库中获取图像URL(View):

<img src=@Server.MapPath(item.imageUrl); />

在浏览器中为上面的代码行呈现的Html之后是错误的:

<img src="D:\Visual" studio="" projects\onlinestore\onlinestore\images\products\dry\baking="" goods\dalda.jpg;=""> 

正确的Html应该是:

<img src="D:\Visual studio projects\onlinestore\onlinestore\images\products\dry\baking goods\dalda.jpg;="">

有人可以指导吗?

2 个答案:

答案 0 :(得分:0)

尝试

var pathOnDisk = HttpContext.Current.Server.MapPath(uri.AbsolutePath);
var decoded = HttpContext.Current.Server.UrlDecode(pathOnDisk);

答案 1 :(得分:0)

您有2个问题。

首先必须对属性的值加引号(您看到的html是因为该值包含空格-在每个空格处,属性结束并且创建了一个新的(无效)属性)

第二,您不需要@Server.MapPath()(并且无论如何都不应在视图中使用)。 imageUrl属性的值应采用格式

"/images/products/dry/baking goods/dalda.jpg"

,然后在其视图中

<img src="@item.imageUrl" />