2010-12-21 15 views
0

Ich habe eine Klasse A, die enthält:Modell Bindung IList von benutzerdefinierten Objekt

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

wo PropertyValueOperators:

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

ich auch eine stark typisierte Ansicht haben, die eine Form A. basierend auf Klasse erstellt ich habe hier gelesen:

ASP.NET MVC model binding an IList<> parameter

, dass das Modell Bindung sh Ould der Lage sein, Listen wie Filterlist zu füllen, damit ich einen HTML-Helfer implementiert habe, die so etwas wie dies erzeugt:

<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"> 

Leider, wenn ich dieses Formular buchen, können Sie etwas falsch eine Anzahl von Filterlist hat 0. sehen? Oder ist es einfach unmöglich zu erreichen, was ich möchte, ohne ein benutzerdefiniertes Modellbinder zu implementieren?

Danke.

Christian

+1

Ist Ihr Regler einen Parameter Signatur wie diese 'IList Elemente' zu ​​nehmen? – DaveParsons

+0

Nein Es dauert eine Instanz von A, die FilterList enthält. OMG Ich habe gerade gemerkt, dass ich Objekte in FilterList umbenennen soll ... werde das versuchen. – cs0815

+2

@DaveParsons senden Sie einfach eine Antwort "Elemente mit FilterList ersetzen" das funktioniert. Du hast mich auf die richtige Spur gebracht, danke! – cs0815

Antwort

1

Bitte zögern Sie nicht für die Löschung abstimmen. Die Lösung besteht darin, Elemente durch FilterList zu ersetzen. Das ist es.

Christian

Verwandte Themen