Итак, вы ищете что-то вроде
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Content_default",
"Content/{id}/{optional}",
new { controller = "ItemController", action = "TheActionYouWantThisToAllRouteTo" }
}
Это будет по умолчанию все для одного контроллера и метода действия (который вы должны указать в своем экземпляре).Затем вы можете получить данные следующим образом:
public ActionResult TheActionYouWantThisToAllRouteTo (string id, string optional)
{
// Do what you need to do
}
При настройке маршрутов вы можете назвать нужные фрагменты информации в URL-адресе, заключив их в пару { }
фигурных скобок.Если вы предпочитаете, чтобы имя optional
было isTestData
, вы просто изменили бы маршрут на: "Content/{id}/{isTestData}"
.
Примечание: Поскольку вы не указали метод действия по умолчаниюВы хотите, чтобы это направлялось, я заменил его на TheActionYouWantThisToAllRouteTo
.Измените эту строку, чтобы прочитать метод действия, к которому вы хотите, чтобы все это делали.Это также означает, что у вас не может быть «обычного» контроллера с именем ContentController.
Редактировать
Стивен Уолтер имеет хороший пост в блоге по пользовательскому маршрутуограничения. Его можно найти здесь .Это должно быть хорошим началом, чтобы сделать то, что вам нужно.