2015-05-05 3 views
17

Я хотел бы определить маршрут следующим образом -Жадный сегмента с .NET MVC 5 атрибутов маршрутизации

[Route("clients/{*code}/{id:guid}/update")] 
public ActionResult Update(string code, Guid id) 
{ 
} 

код будет что-то вроде «Foo/бара/А».

К сожалению, из-за коробки MVC не поддерживает жадные параметры в середине определения маршрута.

Это было ранее solved, используя старые правила маршрутизации MVC, однако я хотел бы иметь это как определение RouteAtribute.

+2

Может ли быть допустимым путь к 'clients/{id: guid}/update/{* code}'? –

+0

@DaveAlperovich, к сожалению, нет, так как это было бы в конце URL-адреса. Маршрут должен поддерживать жадный параметр посередине. – jameskind

+0

Я не думаю, что шаблон может быть реализован с атрибутом маршрута –

ответ

1

Насколько я знаю, вы не можете сделать это напрямую. Тем не менее, вы должны иметь возможность использовать модуль IIS UrlRewrite и переписать запрос с жадным параметром посередине на один с жадным параметром в конце.

Таким образом, клиент запрашивает: clients/{*code}/{id:guid}/update и ваш веб-апи видят clients/{id:guid}/update/{*code}

0

Из того, что я могу сказать, что нет вне коробки способа сделать это, кроме как использовать пользовательский код как this example. Надеюсь, поможет.