我正在使用Razor MVC,我想显示“〜/ Content / uploads”文件夹中的图像。 我提出了以下解决方案:
@foreach (FileInfo fileInfo in (new DirectoryInfo(Server.MapPath("~/Content/uploads"))
.GetFiles().Where(x => x.Extension == ".jpg"))) {
<img src="/@fileInfo
.FullName
.Substring(Server.MapPath("~/").Length)
.Replace("\\", "/")"
width="100">
}
代码的问题在于我正在使用完整的文件路径 我正在删除Server.MapPath()前缀。
如何简化此代码?
答案 0 :(得分:19)
您可以使用Razor页面上提供的UrlHelper类。
@foreach (var imgPath in Directory.GetFiles(Server.MapPath("~/Content/uploads"), "*.jpg"))
{
var img = new FileInfo(imgPath);
<img src="@Url.Content(String.Format("~/Content/uploads/{0}", img.Name))" />
}
答案 1 :(得分:2)
@Rowan Freeman的回答帮助了我jpg
图像文件。但这适用于多个文件:
查看包含多个过滤条件的图片
@{
string supportedExtensions = "*.jpg,*.gif,*.png,*.bmp,*.jpe,*.jpeg,*.ico";
foreach (string imgPath in Directory.GetFiles(Server.MapPath("~/images/store/"), "*.*",
SearchOption.AllDirectories).Where(s => supportedExtensions.Contains(Path.GetExtension(s)
.ToLower())))
{
var img = new FileInfo(imgPath);
<img style="width: 200px; height: 200px;" src="@Url.Content(String.Format("~/images/
store/{0}", img.Name))" />
}
}
希望帮助一些人。