Как перенаправить на определенный URL из контроллера?
Я пытаюсь перенаправить пользователя на определенный адрес после того, как он отправит форму. Я использую приведенный ниже код в контроллере контента:
return RedirectToAction("Business", new RouteValueDictionary(new { controller = "Content", action = "Business", Id = business.BusinessID }));
Он создает URL-адрес примерно так: www.x.com/Content/Business?Id=13.
Что я действительно хочу, так это:www.x.com/Content/Business/13
Я действительно не хочу, чтобы строка запроса разделялась? но для согласования с остальными URL.
Есть ли в любом случае, чтобы сделать это?
3 ответа
Код на самом деле должен быть тем же, но следует отметить, что в файле Global.asax, где я настраиваю свою таблицу маршрутизации, мне нужен следующий фрагмент кода, чтобы получить желаемый результат. Обратите внимание на параметры третьего URL {параметр}
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{parameter}", // URL with parameters
new { controller = "Tokens", action = "Index", parameter = UrlParameter.Optional } // Parameter defaults
);
с этим кодом мне нужно только использовать переменную "параметр" вместо "Id" в моем коде:
return RedirectToAction("Business", new RouteValueDictionary(new { controller = "Content", action = "Business", parameter= business.BusinessID }));
Очень важно использовать для вашей переменной то же имя, которое вы определили в функции MapRout().
Делая это, я получаю желаемый результат:
www.x.com/Content/Business/13
Проверь это
return RedirectToAction("Business", "Content", new { Id = business.BusinessID });
Для меня ваша строка кода дает ожидаемую ссылку, все в порядке с настройкой маршрутизации?