如何在字典中填充值并将它们从视图传递到POST
本文关键字:视图 POST 字典 填充 | 更新日期: 2023-09-27 18:19:23
我有一个字典:
Dictionary<Section, List<EntryParameter>> sectionDict;
//getting dictionary and pass it to model
model.SectionDict=sectionDict;
我将它从控制器的GET方法传递给View,在那里我想填充List (EntryParameter.Value)中每个元素的值
我的问题是,在post方法我收到null而不是模型。SectionDict
如何正确地在我的模型内部的字典或列表上工作?
总算解决了!问题是,通过post方法传输值,我必须使用索引。在构建html之后,输入的名称不能以某种方式编码,该模型不理解。使用dictionary,我得到如下内容:
<input name="[1].EnterValue" class="form-control"
id="Parameter3" type="text" value="" data-val="true" data-val-required="!!!">
相反,我制作了model field:
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="!!!">
这就解决了问题,一切都归到模型。