从数据库Nvarchar类型显示图像

时间:2012-04-08 18:58:41

标签: c# asp.net-mvc-3

嗨我正在使用nvarchar并尝试过ref,直到地图也显示图像〜/ image / pics.jpg。在我的表格中我有3列id,图像和文字。 id = int,image = nvarchar(max)text = nvarchar(50)。

我该如何显示它们?有谁知道我可以遵循的指南或教程?

我搜索每个地方,但他们使用二进制和图像典型。如果我想要的话,我只能显示文字和ID,但是在图像上它显示的图标应该是图像但是没有显示?

控制器

public ActionResult Index()
    {
    var pics = db.image.ToList();

    return View(pics);
    }

视图

@foreach (var item in Model)
<tr>
<img src='@item.image' />
<tr/>
<tr>
@item.text
<tr/>

1 个答案:

答案 0 :(得分:0)

我创建了一个我在视图中使用的辅助方法:

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);
}

可能有更好的方法可以做到这一点,但这会帮助你朝着一个方向前进。希望这会有所帮助。