Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 绑定到嵌套对象列表_Asp.net Mvc 3_Razor_Model Binding - Fatal编程技术网

Asp.net mvc 3 绑定到嵌套对象列表

Asp.net mvc 3 绑定到嵌套对象列表,asp.net-mvc-3,razor,model-binding,Asp.net Mvc 3,Razor,Model Binding,由于我不确定绑定到嵌套对象是如何工作的,让我解释一下我的困境: 这是我的班级: public class DeliveryContactViewModel { public List<DeliveryContact> Contacts; public string Name { get; set; } } public class DeliveryContact { p

由于我不确定绑定到嵌套对象是如何工作的,让我解释一下我的困境:

这是我的班级:

public class DeliveryContactViewModel
    {        
        public List<DeliveryContact> Contacts;        
        public string Name { get; set; }
    }

    public class DeliveryContact
    {

        public string ContactType { get; set; }
        public string ContactAddress { get; set; }
        public List<bool> Reasons { get; set; }
    }
干杯,
T.

正如merekel所建议的,诀窍是向html元素名称添加索引:

例如:

<select name="Contacts[1].ContactType">
           <option value="someValue1">someValue1</option>
           <option value="someValue2">someValue2</option>
</select>

一些价值1
一些价值2
或者像这样进行另一层次的嵌套

<input type="checkbox" value="true"  name="Contacts[1].Reasons[2]"/>

当然,索引是动态的

我从Scott Hanselman那里得到了基本的想法

干杯,
T.

我认为您必须自己生成输入名称值。类似于
model.Contacts[0]。ContactType
model.Contacts[0]。原因[0]
。这意味着你还必须引入某种索引。是的,昨晚晚些时候我已经弄明白了。事实上就是这样,向html元素名称添加索引。
<select name="Contacts[1].ContactType">
           <option value="someValue1">someValue1</option>
           <option value="someValue2">someValue2</option>
</select>
<input type="checkbox" value="true"  name="Contacts[1].Reasons[2]"/>