我创造了我在视图中使用一个辅助方法:
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; }
}
UploadedFile的类:
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);
}
有可能是一个更好的方式来做到这一点,但是这将帮助你的方向。希望这可以帮助。
**为什么**是以NVARCHAR(MAX)存储的图像?这根本没有意义!这是一个**文本**栏 - 它绝对是**不适用于像图像一样的二进制**的东西!你需要使用'VARBINARY(MAX)'而不是...... – 2012-04-08 19:07:10
好吧我不知道如何使用varbinary我不知道如何链接它在数据库中。我的意思是图像所在的网址。你有任何指导? – newb 2012-04-09 08:53:34
你在问题中提供了太少的细节。我们需要看到输入和输出。您提供的细节越多,我们可以帮助您。你能通过你提供的详细数量来回答这个问题吗? – 2012-04-09 13:05:08