我创建了一个在我的视图中使用的辅助方法:
public static IHtmlString Image(this HtmlHelper htmlHelper, string url)
{
return Image(htmlHelper, url, null);
}
public static IHtmlString Image(this HtmlHelper htmlHelper, string url, object htmlAttributes)
{
TagBuilder imgTag = new TagBuilder("img");
UrlHelper urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext);
imgTag.MergeAttribute("src", urlHelper.Content(url));
imgTag.MergeAttributes(new RouteValueDictionary(htmlAttributes));
return new HtmlString(imgTag.ToString(TagRenderMode.SelfClosing));
}
在我看来,我有以下几点:
@model MyProject.ViewModels.MyViewModel
@foreach (var file in Model.UploadedFiles)
{
@Html.Image(file.Path)<br />
}
我的视图模型:
public class MyViewModel
{
public IList<UploadedFile> UploadedFiles { get; set; }
}
上传文件类:
public class UploadedFile
{
public string Path { get; set; }
}
现在,如何填充 UploadedFiles 属性取决于您。我会用数据库调用来做这样的事情:
public ActionResult MyActionMethod()
{
MyViewModel viewModel = new MyViewModel
{
// Database call to return paths
UploadedFiles = fileService.GetFiles()
};
return View(viewModel);
}
可能有更好的方法来做到这一点,但这会帮助你找到一个方向。希望这可以帮助。