获取JSON格式的表单数据以获取多个相同名称的字段

时间:2018-09-05 12:08:45

标签: jquery json

您好,我正在构建一个表单表,其中的行具有多个相同的名称。我想在使用插件的情况下以JSON格式提交表单表。 链接-Serialize JSON form plugin

entityType.ClrType.GetProperties()。有了这个,我只能得到JSON格式的最后一个字段。它正在用相同的名称替换所有字段,并用最后一个字段替换它。

我希望以JSON格式显示所有字段。 例如-

public static class ModelBuilderExtensions
{
    public static ModelBuilder UseValueConverterForType<T>(this ModelBuilder modelBuilder, ValueConverter converter)
    {
        return modelBuilder.UseValueConverterForType(typeof(T), converter);
    }

    public static ModelBuilder UseValueConverterForType(this ModelBuilder modelBuilder, Type type, ValueConverter converter)
    {
        foreach (var entityType in modelBuilder.Model.GetEntityTypes())
        {
            var properties = entityType.ClrType.GetProperties().Where(p => p.PropertyType == type);
            foreach (var property in properties)
            {
                modelBuilder.Entity(entityType.Name).Property(property.Name)
                    .HasConversion(converter);
            }
        }

        return modelBuilder;
    }
}

相反,我只能得到-

$("#form").serializeJSON();

这是我的代码-

[
    {
        "field1": "id1",
        "field2": "dsda",
        "field3": "dsda",
    },
    {
        "field1": "id2",
        "field2": "dsda",
        "field3": "dsda",
    },
    {
        "field1": "id3",
        "field2": "dsda",
        "field3": "dsda",
    },
]
[
    {
        "field1": "id3",
        "field2": "dsda",
        "field3": "dsda",
    },
]

1 个答案:

答案 0 :(得分:2)

您不能以一种形式包含两个或多个具有相同名称的字段,而是需要通过在每个名称的名称末尾添加[]来告诉html它是一个数组,例如

<tr>
    <td><input type="text" name="field1[]"></td>
    <td><input type="text" name="field2[]"></td>
    <td><input type="text" name="field3[]"></td>
</tr>
<tr>
    <td><input type="text" name="field1[]"></td>
    <td><input type="text" name="field2[]"></td>
    <td><input type="text" name="field3[]"></td>
</tr>