我如何使用formdata将字典(键:值)对数据分配给MVC中的控制器操作

时间:2017-03-23 10:27:14

标签: javascript c# asp.net-mvc dictionary

这是我的UI代码,其中我有多个文本文件,我从添加行按钮添加dynmically

<div class="col-md-12">
    <div class="col-md-8" style="float:left;overflow-y: auto;height:260px;">
        <div class="text-right" style="margin-bottom:10px;">
            <input type="button" class="btn btn-primary" value='Add Row' id='addButton' />
            <input type="button" class="btn btn-default" value='Remove Row' id='removeButton'>
        </div>
        <div id='TextBoxesGroup'>
            <div id="TextBoxDiv1">
                <div class="col-md-12">
                    <div class="col-md-6 form-group">
                        <label class="control-label col-md-2">Key</label>
                        <div class="col-md-10">
                            <input type='text' id='key1' class="form-control">
                        </div>
                    </div>
                    <div class="col-md-6 form-group">
                        <label class="control-label col-md-2">Value</label>
                        <div class="col-md-10">
                            <input type="text" id="value1" class="form-control" />
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="col-md-4" style="top:40px;">
        PLEASE PASTE DATE HERE:
        <textarea style="width:340px;height:200px;margin-bottom:20px;"></textarea>
    </div>
</div> 

我想使用javascript

将此值绑定到字典
var specList = [];
for (var i = 1; i < counter; i++) {
    var _key = $("#key" + i).val();
    var _value = $("#value" + i).val();
    specList.push({
        key: _key,
        value: _value
    });
    alert(specList['key']);
}

比我想使用formData附加像这样

var formdata = new FormData($('#formAddProduct').get(0));
formdata.append('prodSpecification', JSON.stringify(specList));

比我想要进行控制器操作

这是我的型号代码

public Dictionary<string,string> prodSpecification { get; set; }

我被困在这里差不多一个月我会非常感谢,如果有人给我一个好的答案

1 个答案:

答案 0 :(得分:0)

我不确定您是通过ajax发布还是通过表单

发布

但假设是ajax,那么你可以做

$.post('@Url.Action("MyAction")', { prodSpecification: specList });