2015-07-12 4 views
1

Я работаю над классифицированным сайтом, который будет иметь такие ссылки, как «электроника/мобильные телефоны/samsung/samsungS3/adTitle». Как создать иерархию представлений, подобных этому в asp.net. Если ответ HMVC, пожалуйста, обратитесь к некоторой ссылке, которая содержит полное руководство по внедрению HMVC.Как создать иерархию страниц в asp.net MVC

ответ

3

Вам не нужна иерархия представлений, вы должны использовать Route Config, что позволит вам получить представление о том, что вам нужна база по URL-адресу.

От 4 версии MVC также есть areas не только контроль и просмотр по умолчанию. Поэтому проверьте это tutorial, чтобы узнать, как настроить свою маршрутизацию.

+0

yep routing - это путь, поддерживаемый. –

+0

Спасибо, но я хочу, чтобы для каждой ссылки был отдельный запрос, например, если ссылка заканчивается на «мобильные телефоны», она покажет все объявления на мобильных телефонах, и если она закончится с «samsung», она покажет все мобильные объявления samsung и т. Д. –

+1

@IrfanWattoo вы говорите о параметрах контроллера, и вы можете использовать их в маршрутизации, например 'id = UrlParameter.Optional' в примере по умолчанию, вы можете сделать что-то вроде' brand = UrlParameter.Optional' и использовать его в своем контроллере, например param, который помогает вы должны показывать правильное объявление. –

1

Вам не нужно создавать представления в этой иерархии, но вам нужно создавать URL-адреса таким образом, и это называется дружественными URL-адресами.

Посмотрите на следующий переполнению стека Question How can I create a friendly URL in ASP.NET MVC? и Friendly URL


Вы будет определять другой маршрут, который будет в конечном итоге на ваш единственный метод действий. Таким образом, вы добавить маршрут в routeConfig.cs следующим

routes.MapRoute(
       name: "custom", 
       url: "{category}/{type}/{manufacturer}/{version}/{Title}", 
       defaults: new { controller = "Home", action = "customRoute"} 
      ); 

и пользовательское действие будет иметь все значения, передаваемые в качестве парам быть следующим

public string customRoute(string category, string type, string manufacturer, string version, string Title) 
{ 
    return category + type + manufacturer + version + Title; 
} 

Вы можете достичь того же с помощью маршрутизации на основе действий а также

// eg: electronics/mobiles/samsung/samsungS3/adTitle 
    [Route("{category}/{type}/{manufacturer}/{Title}")] 
    public ActionResult Index(string cateogry, string type,string manfacture, string Title) { ... } 
+0

Спасибо haseeb, но я не хочу делать дружественный URL , Для каждой ссылки должен быть отдельный запрос, например, если ссылка заканчивается на «мобильных телефонах», он покажет все объявления на мобильных телефонах, и если это закончится с «samsung», он покажет все мобильные объявления samsung и так далее. –

+0

Вы можете достичь этого, используя этот подход. Создание отдельной папки для каждого производителя мобильных устройств не является масштабируемым (Extendible), потому что вы должны время от времени добавлять новых поставщиков. –

+0

будет только один вид для показа рекламы, но запрос будет другим. Это то, что я хотел –

Смежные вопросы