Как обрабатывать строковые массивы MVC в RedirectToAction?
Если у меня есть следующее:
[HttpPost]
public ActionResult DeclineClaims(String button, String[] Decline)
{
if (button == "claim")
{
return RedirectToAction("NewExpense", "Claim", new { Create = Decline });
}
....
....
}
и получить его через RedirectToAction здесь:
public ActionResult NewExpense(String[] Create)
{
...
}
"Создать" во втором действии - пустая строка. Эта проблема не возникает со стандартными Int и Strings.
Как мне обращаться с массивом String?
2 ответа
Решение
Отправитель:
[HttpPost]
public ActionResult DeclineClaims(String button, String[] Decline)
{
if (button == "claim")
{
TempData["Create"] = Decline;
return RedirectToAction("NewExpense", "Claim");
}
....
....
}
Получатель:
public ActionResult NewExpense()
{
String[] data = (String[])TempData["Create"];
}
Вы можете попробовать это:
[HttpPost]
public ActionResult DeclineClaims(String button, String[] Decline)
{
if (button == "claim")
{
var parameters = new RouteValueDictionary();
for (int i = 0; i < decline.Length; i++)
{
parameters["Create[" + i + "]"] = Decline[i];
}
return RedirectToAction("NewExpense", parameters);
}
....
....
}