Маршрутизация в MVC Core 2.0.0 с помощником по тегам

В Mvc Core 2 есть ошибка, из-за которой мы не можем использовать ключевое слово страницы, поэтому я изменил его на идентификатор страницы, теперь эта ошибка исправлена, но у меня есть новая ошибка.

routes.MapRoute(
                name: null,
                template: "Community/Page{pageID}",
                defaults: new { Controller = "Forum", action = "Home" });
            routes.MapRoute(
                name: "default",
                template: "{controller=Forum}/{action=Home}/{id?}");
            routes.MapRoute(
                name: null,
                template: "",
                defaults: new { controller = "Forum", action = "Home", pageID = 1 });
            routes.MapRoute(name: null, template: "{controller}/{action}/{id?}");

и мой помощник по тегам

[HtmlAttributeName(DictionaryAttributePrefix = "page-url-")]
  public Dictionary<string, object> pageUrlValues { set; get; }
  public override void Process(TagHelperContext context, TagHelperOutput output)
  {
    pageUrlValues["page"] = i;

я должен получить

URL/Сообщество/Страница5

но то, что я получаю

URL/Сообщество/Page1?page=5

это работает нормально, но делает мое сопоставление бесполезным, и если я изменил страницу в помощнике тега на pageID, идентификатор страницы теперь обновляется, как и ожидалось, до page5/page4 и т. д., но содержимое этих страниц не обновляется, отображается только содержимое страницы1


person Community    schedule 29.08.2017    source источник


Ответы (2)


Попробуйте изменить {pageID} на {page}

routes.MapRoute(
                name: null,
                template: "Community/Page{page}",
                defaults: new { Controller = "Forum", action = "Home" });
            routes.MapRoute(
                name: "default",
                template: "{controller=Forum}/{action=Home}/{id?}");
            routes.MapRoute(
                name: null,
                template: "",
                defaults: new { controller = "Forum", action = "Home", pageID = 1 });
            routes.MapRoute(name: null, template: "{controller}/{action}/{id?}");
person Hung Quach    schedule 01.09.2017
comment
Спасибо, но я упомянул в своем посте, что в MVC Core 2.0.0 есть ошибка, которая запрещает нам использовать ключевое слово страницы, и она будет исправлена ​​в будущих выпусках. тем временем я ищу альтернативный способ исправить это. по какой-то причине эта ошибка в 2.0.0 будет искать просмотр в общей папке, только если мы использовали страницу - person ; 01.09.2017
comment
Держитесь того же маршрута и перейдите на pageUrlValues["pageID"] = i; - person Hung Quach; 01.09.2017
comment
я упомянул, что когда я это делаю, когда я нажимаю на страницы, содержимое этих страниц не обновляется - person ; 01.09.2017
comment
по какой-то причине он не передает идентификатор моему контроллеру - person ; 01.09.2017

оказывается, я забыл обновить страницу параметров контроллера до pageid

person Community    schedule 01.09.2017