【问题标题】:How to fill values in dictionary and pass them from view to POST如何在字典中填充值并将它们从视图传递到 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 :)

标签: c# .net dictionary view controller


【解决方案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="!!!">

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多