Существует известная проблема с отправкой массива на контроллер ASP.NET MVC. Я нашел много решений, таких как , что . Почему бы не использовать обычный объект вместо массива? Работает хорошо.
Пример кода:
<script>
$(function(){
$('.asArray').click(function(){
var array = Array();
array[0] = 'Dima';
array[1] = 'Ann';
array[2] = 'John';
$.post('/Home/Get', {data: array}, function(data){alert(data);});
});
$('.asObject').click(function(){ // works good
var array = Object();
array[0] = 'Dima';
array[1] = 'Ann';
array[2] = 'John';
$.post('/Home/Get', {data: array}, function(data){alert(data);});
});
});
</script>
<div>
<input type="button" class="asArray" value="asArray"/>
<input type="button" class="asObject" value="asObject"/>
действие контроллера:
public ActionResult Get(IEnumerable<string> data)
{
if (data == null)
return Content("data == null");
return Content("data = [" + data.Aggregate((agr, curr) => agr + ", " + curr) + "]");
}