环境

  • .NET Core 2.1
  • NuGet 包管理器
  • 开源分页包 Sakura.AspNetCore.Mvc.PageList Sakura.AspNetCore.PagedList

参考

安装

  1. NuGet中安装上述两个包(只安装一个无法使用)。
  2. 编辑Startup.cs的ConfigureServices方法。
    • 添加默认的bootstrap式的分页实现(原文:“Add default bootstrap-styled pager implementation”)
      public void ConfigureServices(IServiceCollection services)
      {
        // .. Other configuration codes in you application
       
        // Add default bootstrap-styled pager implementation
        services.AddBootstrapPagerGenerator(options =>
        {
          // Use default pager options.
          options.ConfigureDefault();
         });
      }
  3. 编辑_ViewImports.cs,加入以下代码,对所有视图应用pager标签。
    @addTagHelper *, Sakura.AspNetCore.Mvc.PagedList

步骤

Continue reading “.NET Core 2.1 MVC 实现 PagedList”

之前用MVC 5时,总是习惯先建字典然后转成SelectList,总有一种脱裤放屁的感觉。(需要引用[Microsoft.AspNetCore.Mvc.Rendering] ,在.NET Core 中没有直接被引用)

今天看了一下文档,官方用法是new 一个 List<SelectListItem>(),SelectListItem也需要[Microsoft.AspNetCore.Mvc.Rendering]

参考

SelectListItem Class

Using the DropDownList Helper with ASP.NET MVC

步骤

  1. 在视图使用DropDownList前,需要先在控制器准备SelectList。
    • new出List<SelectListItem>后,使用Add()方法添加SelectListItem条目
      var departs = db.departmentInfo.Select(x => x);
      
      foreach (var i in departs) {
          Items.Add(new SelectListItem { Text = i.dname, Value = i.dname });
      }
    • 如果想令视图中的DropDownList默认显示某一条目,可以在添加SelectListItem时指定Selected选项为true
      Items.Add(new SelectListItem { Text = i.dname, Value = i.dname, Selected = true });
    • 将SelectList添加入ViewBag,使视图可以调用
  2. 在视图中使用HtmlHelper添加DropDownList。
    //两种都可以,第一种需要将名称设置为ViewBag中的名称
    @Html.DropDownList("DepartList", null, new { @class = "form-control" })
    @Html.DropDownList("Department", ViewBag.DepartList as SelectList, new { @class = "form-control" }