ASP.NET MVC Маршрутизация и структура - PullRequest
0 голосов
/ 15 февраля 2010

У меня есть список клиентов, к которому будут привязаны счета-фактуры и электронные письма.

У меня есть мои customer / details / 1 и customer / edit / 1, работающие по маршруту по умолчанию, но я бы хотел, чтобы он был как ниже

  • покупатель - список клиентов
  • customer / 1 / edit - Изменить идентификатор клиента 1
  • клиент / 1 / подробности - Подробная информация о клиенте ID 1
  • клиент / 1 / счет-фактура - список счетов для идентификатора клиента 1
  • клиент / 1 / счет / 3 - данные счета-фактуры 3 для идентификатора клиента 1

Я установил следующий маршрут (до маршрута по умолчанию)

routes.MapRoute("CustomerActions", 
    "customer/{customerid}/{action}/{id}",
    new { controller = "customer", action = "details", id="" } 
);

Кажется, что работает, но в моем редакторе клиента у меня есть ActionLink вроде

<%=Html.ActionLink("Back to List", "Index") %>

Но он дает URL

/ customer / 1 / index, а не просто / customer или / customer / index

Ответы [ 3 ]

0 голосов
/ 15 февраля 2010

ваш маршрут "клиент / {customerid} / {действие} / {id}"

вы указываете действие = "Индекс", оно берется из текущего запроса (в вашем случае 1) и у нас есть / клиент / 1 / индекс

/ customer / 1 будет контроллером = "customer", customerid = 1, action = "details" в соответствии с вашими значениями по умолчанию

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

0 голосов
/ 15 февраля 2010

Вы можете попробовать с двумя маршрутами:

routes.MapRoute("Customer", 
    "customer/{customerid}/{action}/{id}",
    new { controller = "customer", action = "details", id="" } 
);

routes.MapRoute("Customers", 
    "customer",
    new { controller = "customer", action = "List" } 
);

А что касается ссылки:

<%=Html.RouteLink("Back to List", "Customers", null) %>
0 голосов
/ 15 февраля 2010

Вы пробовали

"{controller}/{action}/{id}",
            //    new { controller = "Customer", action = "Details", id = ""}

Нет необходимости, чтобы клиент присутствовал в вашей карте маршрута.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...