使用jQuery Ajax将对象数组传递给MVC控制器方法
在尝试使用jQuery的ajax()函数将对象数组传递给MVC控制器的某个方法时,您可能会遇到控制器方法中的“things”参数为空的情况。即使使用List作为参数类型,也可能出现此问题。
解决此问题的方案如下:
things = JSON.stringify({ 'things': things });
通过这种方式将“things”数组包装在JSON对象中,您可以成功地将数组传递给控制器方法。
此实现的完整代码如下:
$(document).ready(function () { var things = [ { id: 1, color: 'yellow' }, { id: 2, color: 'blue' }, { id: 3, color: 'red' } ]; things = JSON.stringify({ 'things': things }); $.ajax({ contentType: 'application/json; charset=utf-8', dataType: 'json', type: 'POST', url: '/Home/PassThings', data: things, success: function () { $('#result').html('"PassThings()" successfully called.'); }, error: function (response) { $('#result').html(response.responseText); // 使用 response.responseText 获取错误信息 } }); });
public void PassThings(List<Thing> things) { // 处理things数据 } public class Thing { public int Id { get; set; } public string Color { get; set; } }
请注意此实现的两个重要方面:
contentType: 'application/json; charset=utf-8', dataType: 'json',
JSON.stringify({ 'things': things }) ``` 并且在`failure`回调函数中,使用 `response.responseText` 获取服务器返回的错误信息,以更准确地处理错误。 通过以上步骤,您可以确保将对象数组正确地传递给您的MVC控制器。
以上是如何使用 jQuery Ajax 成功将对象数组传递到 MVC 控制器?的详细内容。更多信息请关注PHP中文网其他相关文章!