Как обрабатывать строковые массивы 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);
    }
    ....
    ....
}
Другие вопросы по тегам