Bu makalemizde sayfamızda bulunan input değerlerini kayıt veya diğer işlemlerimiz için sayfa tarafından model olarak değilde FormCollection olarak nasıl alındığınız göreceğiz.
ASP.NET MVC’de FormCollection ile form değerlerini alma
Create View sayfamıza ait kod aşağıdaki şekilde olacak
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | @{ ViewBag.Title = "Yeni Haber"; } <h2>Yeni</h2> @using (Html.BeginForm()) { <fieldset> <legend>Yeni Haber</legend> <div class="editor-label"> <label>Başlık</label> </div> <div class="editor-field"> <input name="baslik" /> </div> <div class="editor-label"> <label>Resim</label> </div> <div class="editor-field"> <input name="resim" /> </div> <div class="editor-label"> <label>Özet</label> </div> <div class="editor-field"> <textarea rows="5" name="ozet"></textarea> </div> <div class="editor-label"> <label>İçerik</label> </div> <div class="editor-field"> <textarea rows="5" name="icerik"></textarea> </div> <div class="editor-label"> <label>Kategori</label> </div> <div class="editor-field"> <select name="katid"> <option value="1">Javascript</option> <option value="2">C#</option> <option value="3">Java</option> <option value="4">ASP.NET</option> </select> </div> <select name="onay"> <option value="1">Onaylı</option> <option value="0">Onaylı Değil</option> </select> <p> <input type="submit" value="Kaydet" /> </p> </fieldset> } |
Crete Action’una ait kodlar ise aşağıdaki şekilde olacak.
1 2 3 4 5 6 7 8 9 10 11 12 13 | [HttpPost] public ActionResult Create(FormCollection form) { var haber = new haberlerlst { baslik = form["baslik"], resim = form["resim"], ekler = form["ekler"], icerik = form["icerik"], katid = int.Parse(form["katid"]), }; return View(); } |
Gördüldüğü üzere Create Action’una view’imizdeki submit türündeki butonua tıkladığımızda post işlemi ile HttpPost Attribute’lü Action’umuz içerisine düşüyoruz burada FormCollection ile sayfamızda yer alan form elemanlarındaki değerleri alabiliyoruz. Buna duruma göre ihtiyaö duyabilirsiniz örnek olarka 10’larca parametre geçmeniz gereken Action’larınız varsa FormCollection ile fazladan parametre belirtmeden temiz bir şekilde form’daki değerlere ulaşabilirsiniz.
Elinize sağlık hocam. Bir sorum olacaktı. Peki sayfada yer alan inputların type, required değerlerini formcollection ile alabilir miyiz?