Przekieruj do akcji z tablicą querystring

Dec 04 2020

Próbuję wykonać przekierowanie do akcji z tablicą querystring:

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

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

Ale to przekierowuje do

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

Jak mam to udać

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

Odpowiedzi

2 Pete Dec 04 2020 at 21:15

Wygląda na to, że nie możesz przekierować bezpośrednio za pomocą przekierowania do akcji - w końcu użyłem mieszanki lub Url.Actioni Redirect:

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

Uważam, że to „Jak utworzyć link do akcji, która przyjmuje tablicę jako parametr (RedirectToAction i / lub ActionLink)?” opisuje twoją sytuację, odpowiedź Lee Smith wydaje się podobna i użyteczna.

OmarOdeh Dec 05 2020 at 00:17

Uważam, że lepiej jest przekonwertować go na łańcuch z separatorem

string variantIdsString = "test1,test2";

Lub spróbuj użyć listy ciągów zamiast tablicy.