Вам нужно использовать метод javaScript parseInt()
, чтобы вернуть строки в числа. Прямо сейчас они являются строками, поэтому добавление двух строк объединяет их, поэтому вы получаете «12».
Вы не можете отправлять сложные типы в качестве параметров перенаправления в MVC, только примитивные типы, такие как числа и строки
Используйте TempData для передачи массива
...
if (reject != 0) {
TempData["CheckedRecords"] = yourArray;
return RedirectToAction("Index", new { filter = filterValue });
}
...
public ActionResult Index(string filter) {
int[] newArrayVariable;
if(TempData["CheckedRecords"] != null) {
newArrayVariable = (int[])TempData["CheckedRecords"];
}
//rest of your code here
}
Я не уверен, что ASP.Net знает, как создать URL-адрес, используя массив int, который вы передаете. Если массив int однозначно идентифицирует ресурс, вы можете попытаться преобразовать массив в строку с разделителями (или аналогичную), разделенную по дефисам, а затем проанализировать строку в методе индекса.
Если вы просто пытаетесь сохранить данные между запросами, используйте TempData:
http://msdn.microsoft.com/en-us/library/system.web.mvc.controllerbase.tempdata.aspx
Вы отправляете два нулевых значения. Когда вы используете новый {}, вы создаете новый объект. Вы должны не только определять имена индексов, но и значения.
return RedirectToAction("Index", new { filter = filter, checkedRecords = checkedRecords });