Я использую определение маршрута по умолчанию:
{controller}/{action}/{id}
, где id = UrlParameter.Optional
. Насколько я понимаю, это означает, что когда id
не является частью URL, это значение маршрута не будет существовать в словаре RouteValues
.
Так что это также кажется вполне возможным (оба GET):
public ActionResult Index() { ... } // handle URLs: controller/action
public ActionResult Index(int id) { ... } // handle URLs: controller/action/id
Если id
отсутствует, будет выполнено первое действие, но при наличии id
будет выполнено второе. Хорошо, но не работает . Он не может разрешить действия.
Как мне это сделать?
Я подумываю написать атрибут селектора метода настраиваемого действия, например:
[RequiresRouteValue(string valueName)]
Это позволило бы использовать такие методы действий. Но это единственный способ сделать это?
Есть ли что-то встроенное, к чему я могу привязаться?