Viewden Controllera Koleksiyon Nesnesi Göndermek

JQuery kullanarak , viewa gelen model'e istediğimiz kadar nesne ekleyebiliriz. ve model nesnemizi controller a post edebiliriz.

İki sınıfımız var. Birisi viewden controllera post edeceğimiz model nesnesi diğeri ise bu modelin içnde koleksiyon olarak yer alacak nesnemiz :

 public class ObjwithCollection
    {
        public int Prop1 { get; set; }
        public ICollection<CollectionObject> CollObj {get;set;}
    }
    public class CollectionObject
    {
        public int CollProp1 { get; set; }
        public string CollProp2 { get; set; }
    }

Şimdi ObjwithCollection nesnemizi kullanarak bir Create tepmlate ile view oluşturalım. View nesnesinde CollObj koleksiyonunun alt propertyleri için input ve labellerin olmadığını görürüz.

<div class="collection-panel form-group">

        </div>
        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="button" value="Add Collection Object To Model" class="add-collectionObject" />
            </div>
        </div>

yukarıdaki kod blogunu viewda input nesnelerimiz görünmesini istediğimiz alana yazalım.

ve koleksiyon nesnelerimizi Jquery ile ekleyelim.

<script>
    $(document).ready(function () {
        var collectionCounter = 0;
        $('.add-collectionObject').on("click", function () {
            $('.collection-panel').append('<div class="form-group"><label class="control-label col-md-2">First Collection Property</label><div class="col-md-10"><input class="form-control" name="CollObj[' + collectionCounter + '].CollProp1" type="text"value=""></div></div><div class="form-group"><label class="control-label col-md-2">Second Collection Property</label><div class="col-md-10"><input class="form-control" name="CollObj[' + collectionCounter + '].CollProp2" type="text" value=""></div></div>');
            collectionCounter++;
        });
    });


</script>

Yukarıdaki javascript kodu "Add Collection To Model" butonuna tıklandığında model nesnemize yeni bir CollectionObject

nesnesi ekleyecektir. ve <div class="collection-panel form-group"> divinin içinde gerekli inputları ekleyecektir.

Formu post ettiğimizde model nesnemizin içinde eklediğimiz koleksiyon nesnelerini görürüz.

Ömer Faruk Dinçer

Yorum Yaz

Yorumlarınız denetimden geçtikten sonra yayınlanmaktadır...