MVC:如何将隐藏表单字段值中的数组绑定到模型集合属性

时间:2015-05-11 16:37:14

标签: jquery asp.net asp.net-mvc

我使用JQuery在隐藏字段中保存了一组int(这是我用来在多个页面中存储数据的pkids的集合)。

在我的ViewModel中,我有属性:

password

在我的观点中我有:

public IEnumerable<int> SubGroupPkids { get; set; }

我的表单上的“保存”按钮使用JQuery序列化并将信息发布回控制器:

<input type="hidden" id="CheckedSubGroups" value="[]" />

集合的Post方法具有签名

var $form = $(self.options.pushFormId);
            if (!$form.valid())
                return;
            var data = $form.serialize();

            $.ajax({
                type: $form.prop('method'),
                url: $form.prop('action'),
                data: data,
                success: function (data) {
                    showPushDialog(data);
                },
            });

因此,我需要将我在表单上的整数集合保存为我在模型中的整数集合,以便它可以绑定到我可以在控制器帖子中使用的模型方法。我不太清楚如何做到这一点。

1 个答案:

答案 0 :(得分:1)

如果您使用的是Razor,则可以在表单中添加Hidden个字段:

for (int i = 0; i < Model.SubGroupPkids.Count; i++ )    
{
  @Html.Hidden("SubGroupPkids[" + i + "]", Model.SubGroupPkids[i])
}

并更改public IEnumerable<int> SubGroupPkids { get; set; }

public List<int> SubGroupPkids { get; set; }

您可以使用JQuery

更改其值
 $(document).ready(function () {
    $('input[name="SubGroupPkids[0]"]').val(5);
 });