Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用<;显示数据库中的图像;页面列表>;在MVC4EF6中_C#_Image_Entity Framework_Asp.net Mvc 4 - Fatal编程技术网

C# 如何使用<;显示数据库中的图像;页面列表>;在MVC4EF6中

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(.....)

这个挑战已经困扰了我好几天了。我显然做错了什么,但我希望我知道是什么

使用PagedList类时,如何在索引视图中显示图片

使用PagedList类时,我无法正确显示图片。当使用
@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>