Настройка ASP.Net MVC 4 Routing с пользовательскими сегментными переменными

Я только начал работать над приложением с несколькими областями (основная система сетки / система типов деталей ..) Я пытаюсь воспользоваться преимуществами замечательных функций маршрутизации в MVC (особенно 4), и я "просто не понимаю" Я полагаю.

В настоящее время единственный определенный маршрут является основным:

routes.MapRoute("Default", 
            "{controller}/{action}/{id}", 
            new { controller = "Account", action = "Index", id = UrlParameter.Optional }
        );

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

Теперь я пытаюсь создать новый маршрут, который может обрабатывать

/someController/someAction/{statusName} 

и конкретно что-то вроде:

/OrderManager/List/New 

А ТАКЖЕ

/OrderManager/List/Viewed

где «Новый» - это «Новый» статус, и подпись действия выглядит следующим образом:

public ActionResult List(string statusName)

я предполагал, что мог бы просто добавить новый маршрут ниже маршрута по умолчанию, идентифицирующего «statusName» вместо Id, но, конечно, как механизм маршрутизации H узнает разницу между:

/ Controller1 / действие1 / 15

/ Controller2 / action2 / новый

Я попытался добавить «статический» маршрут в виде

routes.MapRoute("Default", 
            "ControllerName/ControllerAction/{statusName}", 
            new { statusName = UrlParameter.Optional }
        );

Я думал, что смогу "hiJack" только этот один маршрут и сделать что-то особенное с ним, но чтобы понять, что это не так, маршрутизатор останавливается при первом совпадении Я предполагаю, что это был неправильный способ решить эту проблему в любом случае ..

так что теперь я иду через идею получить что-то вроде:

/somecustomroutename/somesortValue

ех. / OrderManagerList / viewNew

где эти маршруты будут в основном "псевдонимами". Я думал, что добавление следующего маршрута поможет.

 routes.MapRoute("Default_List",
          "OrderManagerList/{statusName}",
          new {controller="OrderManager", action="List", statusName= UrlParameter.Optional }
      );

с соответствующим действием на контроллере OrderManager:

public ActionResult List(string statusName)

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

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

Так что мои вопросы .. по сути, что мне не хватает в маршрутизации в MVC (4)? даже несколько хороших статей для простого человека, как я, чтобы понять?

Мое понимание; определить маршрут и отобразить его «конечную точку» .. однако, я думаю, что я не понимаю предположения, которые делает машина ..

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

заранее спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос