我正在尝试创建一个简单的图片库。上传作品,但我在显示这些图像时遇到问题。
在互联网上,我发现这是正确的方法:
[NotMapped]
public string ImageUrl
{
get
{
var isEmpty = String.IsNullOrWhiteSpace(ImgName);
if(isEmpty)
{
return Path.Combine("~/Images", "noImageAvailable.png");
}else
{
return Path.Combine("~/Images/uploaded", ImgName);
}
}
}
并且在视图中
@foreach (var item in Model) {
...
@{ var imgPath = HostingEnvironment.MapPath(item.ImageUrl); }
<img src="@Url.Content(imgPath)"/>
产生:
<img src="C:\......\Images\uploaded\0_634927659072110613.jpg"/>
对我有用的是:
[NotMapped]
public string ImageUrl
{
get
{
var isEmpty = String.IsNullOrWhiteSpace(ImgName);
if(isEmpty)
{
return Path.Combine("../Images", "noImageAvailable.png");
}else
{
return Path.Combine("../Images/uploaded", ImgName);
}
}
}
在视图中:
@foreach (var item in Model) {
.....
<img src="@Url.Content(item.ImageUrl)"/>
产生:
<img src="../Images/uploaded\0_634927649098750170.jpg"/>
评论
有2个区别:
- 〜/图像与../图像
- 视图中的线条
有趣的是,这条线
<img src="C:\......\Images\uploaded\0_634927659072110613.jpg"/>
在静态独立文件中显示图像,而当它由 IIS 提供时,它不会。只有空白空间而不是图像。
我的问题是什么是正确的方法,为什么第一个方法不起作用?