2016-07-01 2 views
0

У меня есть служба на моем веб-сайте, которая загружает блоки контента из внешнего провайдера, из которого пользователи могут нажимать ссылки и перемещаться.Как настроить подпункты в MVC

Моя маршрутизация должна быть способна обрабатывать их, вызывая мой домашний контроллер с помощью пути запроса.

Например, URL, они будут использовать для навигации будет

www../shop/hire/category/subcategory/subsubcategory/.... 

и если они после определенного продукта:

www../shop/hire/category/subcategory/subsubcategory...?product=ABC 

константа в том, что будет /shop/hire/ с изменения категорий, основанные на том, где вы находитесь, и продукт, если они нашли то, что они на самом деле после.

Проблема, с которой я столкнулся, - это когда в моем приложении щелкнули ссылку с таким путем, а не с помощью HomeController, поэтому я могу разобрать запрос и вызвать службу с соответствующим URL-адресом, я просто получаю 404.

Я попытался добавить маршрут:

routes.MapRoute(
     name: "Category", 
     url: "shop/hire/{categories}/{product}", 
     defaults: new { controller = "Home", action = "Index", categories = UrlParameter.Optional, product = UrlParameter.Optional } 
    ); 

, но это, кажется, не имели никакого эффекта.

+0

Я думаю, что ваша архитектура с многократно категориями initialy неправильно Вы нужно, например, передать все категории, которые вам нужны по параметрам. –

+0

Проблема в том, что это не моя архитектура. Я звоню внешнему провайдеру, который использует это, чтобы найти нужный продукт. – Wizard

+0

Возможный дубликат [Несколько уровней в пользовательской маршрутизации MVC] (http://stackoverflow.com/questions/31934144/multiple-levels-in-mvc-custom-routing) – NightOwl888

ответ

1

Попробуйте использовать улов всего маршрут

routes.MapRoute(
     name: "Category", 
     url: "shop/hire/{*categories}", 
     defaults: new { controller = "Home", action = "Index" } 
    ); 

и в своем действии вы можете разобрать значение, чтобы получить ваши категории и продукт

public ActionResult Index(string catagories) { ... } 
Смежные вопросы