模型绑定自定义对象的IList

时间:2010-12-21 11:24:15

标签: asp.net-mvc asp.net-mvc-2

我有一个A类,其中包含:

public IList<PropertyValueOperators> FilterList { get; set; }

其中PropertyValueOperators:

public class PropertyValueOperators
    {
        public string Property { get; set; }
        public string Value { get; set; }
        public string LikeOperator { get; set; }
    }

我还有一个强类型视图,它创建了一个基于类A的表单。我在这里阅读:

ASP.NET MVC model binding an IList<> parameter

模型绑定应该能够填充像FilterList这样的列表,所以我实现了一个生成这样的HTML帮助器:

<label for="items[0].Property">Filter By</label>    
<select id="items[0]_Property" name="items[0].Property">
    <option selected="selected" value="Item.Id">DBId</option>
    <option value="Category_ItemName.Name">Name</option>
    </select>
    <label for="items[0].LikeOperator">Filter Operator</label>
    <select id="items[0]_LikeOperator" name="items[0].LikeOperator">
    <option value="Contains">Contains</option>
    <option value="EndsWith">Ends With</option>
    <option selected="selected" value="Equals">Equals</option>
    <option value="Starts With">Starts With</option>
    </select>
    <label for="items[0].Value">Filter Value</label>
    <input name="items[0].Value" style="width: 100px;" value="920058" id="items[0]_Value" width="5" type="text">
    <br>
    <label for="items[1].Property">Filter By</label>
    <select id="items[1]_Property" name="items[1].Property">
    <option value="Item.Id">DBId</option>
    <option selected="selected" value="Category_ItemName.Name">Name</option>
    </select>
    <label for="items[1].LikeOperator">Filter Operator</label>
    <select id="items[1]_LikeOperator" name="items[1].LikeOperator">
    <option value="Contains">Contains</option>
    <option value="EndsWith">Ends With</option>
    <option value="Equals">Equals</option>
    <option selected="selected" value="Starts With">Starts With</option>
    </select>
    <label for="items[1].Value">Filter Value</label>
    <input name="items[1].Value" style="width: 100px;" value="" id="items[1]_Value" width="5" type="text">

不幸的是,当我发布此表单时,FilterList的计数为0.你能看到错误吗?或者,如果不实现自定义模型绑定器,它是不可能实现我想要的?

感谢。

基督教

1 个答案:

答案 0 :(得分:1)

请随时投票删除。解决方案是使用FilterList替换项目。就是这样。

基督教