Как перенаправить на определенный URL из контроллера? - PullRequest
1 голос
/ 25 ноября 2011

Я пытаюсь перенаправить пользователя на определенный адрес после того, как он отправит форму.Я использую приведенный ниже код в моем контроллере контента:

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 ]

2 голосов
/ 29 ноября 2011

Код на самом деле должен быть тем же, но следует отметить, что в файле 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 /Содержание / Бизнес / 13

1 голос
/ 25 ноября 2011

Проверьте это

return RedirectToAction ("Business", "Content", new {Id = business.BusinessID});

0 голосов
/ 25 ноября 2011

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

...