Как перенаправить на определенный 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 });

Для меня ваша строка кода дает ожидаемую ссылку, все в порядке с настройкой маршрутизации?

Другие вопросы по тегам