Я бы решил эту проблему на сервере, добавив новый маршрут в глобальный файл приложения global.asax (global.asax.vb или global.asax.cs, если вы используете разделение кода).
Вы бы добавили новый маршрут, подобный этому:
routes.MapRoute("UserControlRoute", "/Cube/Filter/{action}",new { controller = "FilterController" } );
Тогда URL "/ Cube / Filter / GetPeople" будет сопоставлен с действием GetPeople фильтра FilterController.
При желании вы можете указать контроллер по умолчанию, например:
routes.MapRoute("UserControlRoute", "/Cube/Filter/{action}",new { controller = "FilterController", action = "DefaultAction" } );
Что затем сопоставит URL "/ Cube / Filter /" с действием "DefaultAction".
Если вы хотите, чтобы «Куб» изменился на что-то другое, то это также можно настроить в качестве параметра:
routes.MapRoute("UserControlRoute", "/{cube}/Filter/{action}",new { controller = "FilterController", action = "DefaultAction", cube="DefaultCube" } );
Вам необходимо перекомпилировать приложение после внесения изменений в маршруты в этом файле.
«UserControlRoute» - это любое имя, которое вы хотите назвать маршрутом, оно должно быть уникальным.
Больше информации здесь;
http://www.asp.net/learn/mvc/tutorial-23-cs.aspx