Перенаправление к действию с массивом строки запроса

Dec 04 2020

Я пытаюсь выполнить перенаправление к действию с массивом строки запроса:

string[] variantIds = new { 
  "test1",
  "test2",
};

return RedirectToAction("SamplesOrderStep3", new { variantIds });

Но это перенаправляет на

sample-order-step3?variantIds=System.String%5B%5D

Как мне заставить его перейти в

sample-order-step3?variantIds=test1&variantIds=test2

Ответы

2 Pete Dec 04 2020 at 21:15

Похоже, вы не можете перенаправить напрямую с помощью перенаправления на действие - в конце концов я использовал смесь или Url.Actionи Redirect:

return Redirect($"{Url.Action("SamplesOrderStep3")}?variantIds={string.Join("&variantIds=", variantIds)}");
YonatanGross Dec 04 2020 at 20:56

Я считаю, что это «Как связать действие, которое принимает массив в качестве параметра (RedirectToAction и / или ActionLink)?» описывает вашу ситуацию, ответ Ли Смита кажется похожим и полезным.

OmarOdeh Dec 05 2020 at 00:17

Я считаю, что лучше преобразовать в строку с разделителем

string variantIdsString = "test1,test2";

Или попробуйте использовать список строк вместо массива.