如何使用过滤和分页在MVC中呈现局部视图

时间:2017-01-03 14:47:59

标签: c# asp.net-mvc model-view-controller

我迈出了MVC的第一步。我试图制作我的个人壁纸画廊。

所以我做了Mockup我想要达到的目标。

截至今天,我在网上搜索了大约三天才能完成这件事。但是我在过滤和分页方面遇到了问题,所以我希望有人可以帮助我。

这是我到目前为止所做的:

查看

@using PagedList.Mvc;
@model PagedList.IPagedList<WallpaperGalleryWeb.Wallpaper>

<link href="~/Content/PagedList.css" rel="stylesheet" type="text/css" />

<style type="text/css">
    .thumbnail {
        width: 200px;
        height: 112px;
        margin: 5px;
        float: left;
    }

        .thumbnail img {
            height: 100%;
            width: 100%;
        }
</style>

@foreach (var item in Model)
{
    <div class="thumbnail" onclick="">
        <a href="~/Wallpapers/Details/@item.ID" style="display: block; height: 100%">
            <img src="~/File/Thumbnail/@item.ID">
        </a>
    </div>
}

<br clear="all" />
<br />

Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
@Html.PagedListPager(Model, page => Url.Action("Index", new { page }))

控制器

public class WallpapersController : DatabaseController
{
    // GET: Wallpapers
    public ActionResult Index(int? page)
    {
       return PartialView(db.Wallpapers.Include(i => i.Author)
                                 .Include(i => i.Orientation)
                                 .Include(i => i.Set)
                                 .Include(i => i.Source)
                                 .Include(i => i.Category)
                                 .OrderBy(x => x.ID)
                                 .ToPagedList((page ?? 1), 100));
    }

    // GET: Wallpapers/Details/5
    public ActionResult Details(int? id)
    {
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        Wallpaper wallpaper = db.Wallpapers.Find(id);
        if (wallpaper == null)
        {
            return HttpNotFound();
        }
        return View(wallpaper);
    }
}

所以我现在的问题是:如何通过下拉列表获取静态布局(我知道如何通过CSS)进行过滤/排序,并将选定的值与分页功能相结合,传递给控制器​​以仅刷新&#34;结果区&#34;与控制器的项目?

问候!

0 个答案:

没有答案