如何在字典中填充值并将它们从视图传递到 POST

Posted

技术标签:

【中文标题】如何在字典中填充值并将它们从视图传递到 POST【英文标题】:How to fill values in dictionary and pass them from view to POST 【发布时间】:2015-10-27 14:16:46 【问题描述】:

所以我有一本字典:

    Dictionary<Section, List<EntryParameter>> sectionDict;
        //getting dictionary and pass it to model
    model.SectionDict=sectionDict;

我将它从控制器的 GET 方法传递给 View,我想在其中填充 List (EntryParameter.Value) 中每个元素的值

我遇到的问题是在 post 方法中我收到 null 而不是 model.SectionDict

如何正确处理模型内部的字典或列表?

【问题讨论】:

请至少告诉您正在使用的框架,否则无法提供帮助。 已编辑,.net mvc 4 :) 【参考方案1】:

有点解决这个问题! 问题是要通过 post 方法传输值,我必须使用索引。构建 html 后,输入的名称无法以某种方式编码,该模型无法理解。使用字典我得到了类似的东西:

<input name="[1].EnterValue" class="form-control" 
    id="Parameter3" type="text" value="" data-val="true" data-val-required="!!!">

相反,我制作了模型字段:

List<EntryParameter> EntryParameterList

我在哪里保存字典中元素的填充值。 我是这样做的:

var listIndex = Model.EntryParametersList.IndexOf(Model.EntryParametersList.Where(o => o.Parameter.ID == Model.SectionDict.ToArray()[k].Value[i].Parameter.ID).First());
    @Html.TextBoxFor(m => Model.EntryParametersList[listIndex].EnterValue, new (someAttributes));

结果是

<input name="EntryParametersList[1].EnterValue" class="form-control" 
    id="Parameter3" type="text" value="" data-val="true" data-val-required="!!!">

这解决了问题,一切都进入模型。

【讨论】:

以上是关于如何在字典中填充值并将它们从视图传递到 POST的主要内容,如果未能解决你的问题,请参考以下文章

如何从多选下拉菜单中获取值并将它们与 POST 一起发送?

如何在模板中将数据从 Flask 传递到 JavaScript?

在 codeigniter 中,如何将数组值从控制器传递到同一视图页面?

在 Swift 中的表格视图中填充数据的问题

在 MVC/Razor 中,如何获取多个复选框的值并将它们全部传递给控制器​​?

从文本字段中获取值并将它们存储在Objective-C中的字典中