C# 如何使用<;显示数据库中的图像;页面列表>;在MVC4EF6中
这个挑战已经困扰了我好几天了。我显然做错了什么,但我希望我知道是什么 使用PagedList类时,如何在索引视图中显示图片 使用PagedList类时,我无法正确显示图片。当使用C# 如何使用<;显示数据库中的图像;页面列表>;在MVC4EF6中,c#,image,entity-framework,asp.net-mvc-4,C#,Image,Entity Framework,Asp.net Mvc 4,这个挑战已经困扰了我好几天了。我显然做错了什么,但我希望我知道是什么 使用PagedList类时,如何在索引视图中显示图片 使用PagedList类时,我无法正确显示图片。当使用@model-HeHu.Models.Candidate时,在我的编辑视图中一切正常,但是当尝试在使用PagedList@model-PagedList.IPagedList的索引视图中显示图片时,字段model.PictFiles在以下代码中无法识别: @if (Model.PictFiles.Any(.....)
@model-HeHu.Models.Candidate
时,在我的编辑视图中一切正常,但是当尝试在使用PagedList@model-PagedList.IPagedList
的索引视图中显示图片时,字段model.PictFiles在以下代码中无法识别:
@if (Model.PictFiles.Any(.....)
<div class="col-md-10">
<img width="150" src="~/PictFile?id=@Model.PictFiles.First(.....)
</div>
</div>
}
索引的控制器(简化)如下所示:
public class CandidateController : Controller
{
private ApplicationDbContext db = new ApplicationDbContext();
public ActionResult Index(string sortOrder, string currentfilter, string searchString, int? opdrachtNummer, int? id, int? page)
{
//Adding the Pager
if (searchString != null || opdrachtNummer.HasValue)
{
page = 1;
}
else
{
searchString = currentfilter;
}
ViewBag.Currentfilter = searchString;
var candidates = from c in db.Candidates
.Include(c => c.PictFiles)
.Include(c => c.FilePaths)
select c;
int pageSize = 10;
int pageNumber = (page ?? 1);
return View(candidates.ToPagedList(pageNumber, pageSize));
}
以及用于图像的控制器:
using HeHu.DAL;
using HeHu.Models;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace HeHu.Controllers
{
public class PictFileController : Controller
{
private ApplicationDbContext db = new ApplicationDbContext();
// GET: PictFile
public ActionResult Index(int id)
{
var pictFileToRetrieve = db.PictFiles.Find(id);
return File(pictFileToRetrieve.Content, pictFileToRetrieve.ContentType);
}
}
}
最后,视图如下所示:
@model PagedList.IPagedList<HeHu.Models.Candidate>
@using PagedList.Mvc;
<link href="~/Content/PagedList.css" rel="stylesheet" type="text/css" />
@{
ViewBag.Title = "Candidates";
}
<h2><cr/>Kandidaten</h2>
@using (Html.BeginForm("Index", "Candidate", null, FormMethod.Get, new { enctype = "multipart/form-data" }))
{
<table class="table">
<tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.CandLastName)
</td>
<td>
@Html.DisplayFor(modelItem => item.CandFirstName)
</td>
<td>
@Html.DisplayFor(modelItem => item.CandCompany)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.CandidateID }) |
@Html.ActionLink("Details", "Details", new { id = item.CandidateID }) |
@Html.ActionLink("Delete", "Delete", new { id = item.CandidateID })
</td>
</tr>
}
</table>
}
<br />
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
@Html.PagedListPager(Model, page => Url.Action("Index",
new { page, sortOrder = ViewBag.CurrentSort, currentFilter = ViewBag.CurrentFilter }))
@model PagedList.IPagedList
@使用PagedList.Mvc;
@{
ViewBag.Title=“候选人”;
}
康迪丹
@使用(Html.BeginForm(“Index”,“Candidate”,null,FormMethod.Get,new{enctype=“multipart/formdata”}))
{
@foreach(模型中的var项目)
{
@DisplayFor(modelItem=>item.CandLastName)
@DisplayFor(modelItem=>item.CandFirstName)
@DisplayFor(modelItem=>item.CandCompany)
@ActionLink(“编辑”,“编辑”,新的{id=item.CandidateID})|
@ActionLink(“详细信息”,“详细信息”,新的{id=item.CandidateID})|
@ActionLink(“删除”,“删除”,新的{id=item.CandidateID})
}
}
@Model.PageCount的@页(Model.PageCountUrl.Action(“索引”),
新建{page,sortOrder=ViewBag.CurrentSort,currentFilter=ViewBag.currentFilter})
在编辑视图中,这是正常的,它的工作方式与您使用辅助对象的方式相同:
@if (Model.PictFiles.Any(.....)
<div class="col-md-10">
<img width="150" src="~/PictFile?id=@Model.PictFiles.First(.....)
</div>
</div>
}
希望这有帮助 在编辑视图中,这是正常的,它的工作方式与您使用辅助对象的方式相同:
@if (Model.PictFiles.Any(.....)
<div class="col-md-10">
<img width="150" src="~/PictFile?id=@Model.PictFiles.First(.....)
</div>
</div>
}
希望这有帮助 感谢Karel的正确解释和正确答案!它工作得很好。最终的页面生成如下。我发现有趣的是
src=“/PictFiles?id=1”
。它看起来好像将文件存储在目录中,而不是数据库中
<td>
<div class="col-md-10">
<img width="150" src="/PictFile?id=1" />
</div>
</td>
感谢Karel的正确解释和正确答案!它工作得很好。最终的页面生成如下。我发现有趣的是src=“/PictFiles?id=1”
。它看起来好像将文件存储在目录中,而不是数据库中
<td>
<div class="col-md-10">
<img width="150" src="/PictFile?id=1" />
</div>
</td>
@foreach (var item in Model)
{
<tr>
<td>
@if (item.PictFiles.Any(x => x.FileType == FileType.PersonalPicture))
{
<div class="col-md-10">
<img width="150" src="~/PictFile?id=@(item.PictFiles.First(x => x.FileType == FileType.PersonalPicture).PictFileId)"/>
</div>
}
</td>
<td>
@Html.DisplayFor(modelItem => item.CandLastName)
</td>
<td>
@Html.DisplayFor(modelItem => item.CandFirstName)
</td>
<td>
@Html.DisplayFor(modelItem => item.CandCompany)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.CandidateID }) |
@Html.ActionLink("Details", "Details", new { id = item.CandidateID }) |
@Html.ActionLink("Delete", "Delete", new { id = item.CandidateID })
</td>
</tr>
}
<td>
<div class="col-md-10">
<img width="150" src="/PictFile?id=1" />
</div>
</td>