Ответ 1
Когда ваши требования к маршруту начинают усложняться, со временем станет проще просто добавить путь к wild card, чтобы вы могли самостоятельно разобрать оставшуюся часть запроса. то есть в этом случае, поскольку первая часть строки запроса остается постоянной, вы можете добавить отображение дикой карты для хранения переменных частей запроса, то есть:
Routes.Add("/save/{Year}/{Week}/{DaysString*}");
ServiceStack по-прежнему будет заполнять частичный DTO полями Год и Неделя (а также любые поля, которые были переданы в запросе). Остальные переменные части URL-адреса хранятся в DaysString, которые затем можно вручную проанализировать вручную. Таким образом, приведенное выше сопоставление будет соответствовать URL-адресам, например:
/сохранить/2010/12/понедельник/4/вторник/6? Среда = 7
И введите следующие данные в DTO запроса:
- Год: 2010
- Неделя: 12
- Среда: 7
- DaysString: понедельник/4/вторник/6