Действие Umbraco с ошибкой параметра: «Страница не найдена. Ни один документ Umbraco не соответствует URL-адресу / About / Topic? Topic = aloha '." - PullRequest
0 голосов
/ 08 июня 2019

У меня есть эта проблема. Я создал действие «Тема» с параметром «тема», но когда я захожу в «О программе / Тема? Topic = aloha», я не могу найти это действие и получаю сообщение об ошибке: «Страница не найдена Ни один документ Umbraco не соответствует URL / О / Тема? Тема = алоха. «

Контроллер:

public class AboutController : Umbraco.Web.Mvc.RenderMvcController
{
    // GET: About
    public ActionResult About(RenderModel model)
    {
        return View("About", model);
    }

    public ActionResult Topic( string topic)
    {
        return View("About");
    }
}

Маршрутизация:

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
        routes.MapRoute(
        name: "Default1",
        url: "{controller}/{action}/{topic}",
        defaults: new { controller = "About", action = "Topic", topic = UrlParameter.Optional }
        );
    }

1 Ответ

0 голосов
/ 10 июня 2019

Если вы используете контроллер Umbraco Mvc, вам придется создавать свои маршруты в конвейере Umbraco, а не в обычной маршрутизации MVC.

Из документов:

Вы можете указать свои собственные маршруты MVC для работы в конвейере Umbraco.Для этого необходимо использовать реализацию Umbraco.Web.Mvc.UmbracoVirtualNodeRouteHandler с вашим пользовательским маршрутом.

Для Umbraco V7 подробнее здесь

Для Umbraco V8больше информации здесь

...