0

嗨,我正在使用 nvarchar 并且也尝试过参考,直到地图也显示像 ~/image/pics.jpg 这样的图像。在我的表中,我得到了 3 列 ID、图像和文本。id=int,图像=nvarchar(max) 文本=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/>
4

1 回答 1

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

上传文件类:

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

可能有更好的方法来做到这一点,但这会帮助你找到一个方向。希望这可以帮助。

于 2012-04-08T19:18:59.247 回答