ASP.Net MVC со сложными маршрутами - как сохранить его «разумным»?

У меня есть клиент, который хочет использовать соглашение об именах URL, например:

/{subjectarea}/{subject}/{action}

И это нормально - это работает блестяще , с одним контроллером на предметную область и наличие действия после идентификатора (предмета) вообще не проблема.

Однако затем все усложняется, так как клиент затем хочет продолжить иерархию:

/{subjectarea}/{subject}/{action}/{tightlyrelatedsubject}/{tightlyrelatedsubjectvariables}/{tightlyrelatedsubjectaction}

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

Как я могу это сделать, избегая при этом нарушения всех принципов MVC, а также избегая повторной реализации тонны функций, предоставляемых ASP.Net MVC в моем контроллере предметной области, чтобы иметь возможность обрабатывать связанные темы с того же контроллера ?

Можно ли каким-то образом вызвать контроллер связанных субъектов из родительского контроллера субъекта и вернуть полученное представление (так как это сохранит разделение функций субъектов на их собственные контроллеры)? Если это возможно, это решит кучу проблем с этим.

8
задан Moo 4 March 2012 в 16:51
поделиться