将对象列表从客户端映射到服务器 - javascript

我想使用MVC从客户端到服务器映射对象列表。在服务器上,我看到该列表中填充了正确数量的项目,但是属性为空。我究竟做错了什么?

这是来自客户端的代码:

var listCAORAS = [];

    $('span.chkDelete input[type=checkbox]:checked').each(function (i, obj) {
          var iORAS_KEY = $(obj).parent().attr('data-ioras_key');
          if (iORAS_KEY) {
            listCAORAS.push({ "iORAS_KEY": Number(iORAS_KEY) });
          }
        });

    $.ajax({
          method: 'post',
          url: '/OrderSupplier/DeleteCAORAS/',
          data: {
            listCAORAS: listCAORAS
          }          
        });

服务器端:

public JsonResult DeleteCAORAS(List<DTO_CAORAS> listCAORAS)
{
}

public class DTO_CAORAS
{
  public int? iORAS_KEY { get; set; }

//many more properties here
}

参考方案

默认的jQuery ajax contentType'application/x-www-form-urlencoded; charset=UTF-8',这意味着要绑定到您的模型,数据格式必须为

$.ajax({
    ....
    data: { [0].iORAS_KEY: 1, [1].iORAS_KEY: 1, [2].iORAS_KEY: 1, ... }
});

即您的对象名称必须具有从零开始的连续集合索引器。

请注意,如果您的视图是正确生成的(即您的复选框绑定到bool属性,并且iORAS_KEY属性具有隐藏的输入),那么您所需要做的就是

$.ajax({
    ....
    data $(yourForm).serialize()
});

要在执行操作时发送一组复杂的对象,必须将contentType设置为'json'并对数据进行字符串化处理,以指示DefaultModelBinder使用JsonValueProviderFactory将数据反序列化到模型中。

$.ajax({
    url: '@Url.Action("DeleteCAORAS", "OrderSupplier")', // always use Url.Action() to generate the url
    ....
    contentType: 'application/json; charset=utf-8',
    data: JSON.stringify({ listCAORAS: listCAORAS })
});

如果我得到url(''),我该如何使用另一个URL - javascript

我是新手,正在写这篇文章,但是如果源上没有图像,那么我只有空白。有人可以告诉我,如果我正在获取背景图像,如何获取/images/no-image.jpg:url();这是我的代码:<div class="uk-clearfix uk-position-relative"> <div class="recipeb…

获取JavaScript值到C#字符串 - javascript

                        是否可以在C#中执行类似的操作?该值为“ 10/05/2014”string jsValue = javascript("$('#EstimatedStartDate').val()"); 参考方案 您能否更详细地阐明您要做什么。看来您正在尝试从javascript(客户…

Javascript IF语句 - javascript

                        嗨,我有这段代码可以正常工作,并将两个日历显示为一个日历。我还有一个php变量$login_session,其中包含登录电子邮件地址的用户。关于如何显示[email protected]日历的任何想法(伪代码)IF $login_session == "[email protected]&#…

提交初始化后删除某些帖子数据 - javascript

在初始化提交之后但在将数据发送到处理页面之前,是否可以过滤$ _POST表单数据?我想象过程的方式:提交->收集$ _POST数据->发送数据我想做的事:提交->收集$ _POST数据->删除某些元素->发送数据这样就不必更改处理页面以过滤掉不希望接收的元素了吗? javascript大神给出的解决方案 当然可以,您可以在JS …

如何使用Javascript将字典列表解析为JSON格式? - javascript

我正在尝试解析JSON格式的词典列表,以便可以使用它们的数据创建一组列表项,其中使用此数据生成文本和ID。我将以下内容传递到我的网页,并在投放之前将其存储在隐藏的div中: [{'text': 'org1', 'id': 'org1ID'}, {'text':…