У меня есть страница MVC для создания объекта. По завершении я хочу перенаправить на родительский объект. Я делаю это так:Сделать ASP.NET MVC параметром маршрута с именем `` id '', как и любой другой параметр
return RedirectToAction("Edit", new { id = vm.Parent });
Когда я использую любое другое имя параметра, оно интерпретируется как URL PARAM:
return RedirectToAction("Edit", new { foo = vm.Parent });
делает, как /Entities/Edit?foo=234
Но ASP MVC улавливает маршрут param назван id
как особый случай, и URL выглядит так: /Entities/Edit/234
. Это не работает для меня, потому что маршрутизация не настроена для работы с этим. Я ищу, чтобы получить URL-адрес, как /Entities/Edit?id=234
.
Как заставить его работать таким образом? Настройка маршрута:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
В конфигурации вашего маршрута найдите сопоставленный маршрут, который выглядит следующим образом: '{{control}/{ action}/{id} "' и добавьте детали к вашему вопросу. – spender
Используете ли вы маршруты по умолчанию? –
Добавлена настройка маршрута @spender – Johanes