有known trouble发送数组到ASP.NET MVC控制器。我找到了很多像that这样的解决方案。为什么不使用普通对象代替数组?它运作良好。 代码示例:
<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) + "]");
}