Как просматривать страницы списка в Razor, часть 2

Разработка на C# под linux, Как просматривать страницы списка в Razor
 

Подключить код

Очевидно, что нужно добавить reference или package в .csproj

Reference

Ссылки на другой проект в .csproj-файле выглядят так:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  ...
  <ItemGroup>
    <ProjectReference Include="..\X.PagedList\X.PagedList.csproj">
      <Project>{55002A4E-D21E-432D-BAAC-1A9BEFF4115B}</Project>
      <Name>X.PagedList</Name>
    </ProjectReference>
    <ProjectReference Include="..\X.PagedList.Mvc\X.PagedList.Mvc.csproj">
      <Project>{3E8629F8-D927-4D5F-A351-47DDE2AE37D1}</Project>
      <Name>X.PagedList.Mvc</Name>
    </ProjectReference>
  </ItemGroup>


Добавить такие строчки можно при помощи monodevelop:
edit-references.png

Package

С добавлением package посложнее, потому что перед тем как добавить package, его надо сначала создать.

Демопример

Почему я не могу использовать демопример из репозитория?
при сборке выдаётся ошибка:
error : All projects referencing X.PagedList.Mvc.csproj must install nuget package Microsoft.Bcl.Build.
это произошло после того, как я заменил зависимость от PCL на зависимость от стандартного mono
вероятно, классы в этих комплектах библиотек сгруппированы по-разному.

несмотря на то, что Microsoft.Bcl.Build добавлен в проект X.PagedList.Mvc.Example, компиляция не проходит.

Я убрал этот пакет (два пакета - Microsoft.Bcl и Microsoft.Bcl.Build) из всех проектов и всё скомпилировалось.

Что дальше?

Надо выписать пример использования XPagedList (то есть, что куда и как добавлять в совершенно новый mvc-проект помимо reference)

Очевидно, что надо придумать некий URL, передавая который пользователь будет запрашивать вывод списка.
/controller/action -> /search-results/index.cshtml
Затем надо написать контроллер, который обрабатывает запросы, приходящие на этот URL
Затем создать index.cshtml, который будет автоматизированно отображаться при помощи кода return View();

MasterPage

всё вроде бы ясно и понятно (ну почти), за исключением того, что я не вижу, где подключается шаблон сайта (Master Page)
Как отключить шаблон сайта?
2008-10-16, Microsoft ASP.NET Team, Creating Page Layouts with View Master Pages
    http://www.asp.net/mvc/overview/older-versions-1/views/creating-page-layouts-with-view-master-pages-cs
You add a new view master page to an MVC project by right-clicking the Views\Shared folder, selecting the menu option Add, New Item, and selecting the MVC View Master Page template
так, это не то. Нам нужно выяснить как это делают в синтаксисе Razor
2010-10-22, ScottGu, ASP.NET MVC 3: Layouts with Razor
    http://weblogs.asp.net/scottgu/asp-net-mvc-3-layouts

Если удалить этот контент:
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

из файла /Views/_ViewStart.cshtml
то всё приходит к ожидаемому состоянию.
http://stackoverflow.com/questions/4081811/correct-way-to-use-viewstart-cshtml-and-partial-razor-views

Ну, основой принцип вроде бы понятен. Что дальше? Опакетить? Прикрутить к Coatl-List?
Прикрутить к web-beagle? Для web-beagle надо понять, как использовать Nancy (так же, как в antd). Кроме того, в Beagle должен быть старый код, графика, стили, которые можно перенести на новый движок.

Надо посмотреть код самого X.PagedList (ну, просто потому, что это можно сделать. Возможно прийдёт какое-то понимание)

Опакетить и забыть

1. Нужен .nuspec
есть он в репозитории готовый? Нету
2. нужны патчи для вырезания PCL или команда для утилит. Патчи, ясное дело, быстрее (написать).
Или можно собирать из своего замороженного репозитория, где такие патчи будут прямо в git
за те два дня пока я копался, появилась какая-то новая ветка для какого-то MVC 6, а я не в курсе, о чём были предыдущие пять...