如何在字典中填充值并将它们从视图传递到 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的主要内容,如果未能解决你的问题,请参考以下文章
如何在模板中将数据从 Flask 传递到 JavaScript?
在 codeigniter 中,如何将数组值从控制器传递到同一视图页面?