FormCollection neden boş gelir?

10 Ocak 2016 1 dk okuma süresi 63 okunma

Gerek StackOverFlow gerekse bazı programlama forumlarında gördüğüm kadarıyla birçok kişi FormCollection'ın boş gelmesinden ve sorunu çözememekten şikayetçiydi. Aslında yaptıkları çok ufak bir hata. FormCollection için input name özelliği yerine id kullanmak. FormCollection input name özelliğine ihtiyaç duyar. Aslında sadece FormCollection değil form üzerideki modelinize ait inputlarda name özelliği ile işlem yapar. Sayfa kaynağından detaylı şekilde görebilirsiniz.

Aşağıdaki basit form kullanımı görebilirsiniz.

@using (Html.BeginForm("Search", "Home", FormMethod.Post))
{
    @Html.AntiForgeryToken()
    
    <div class="col-xs-10">
        <!-- name="keyword" özelliği sayesinde sorunsuz şekilde formcollection'da görebilirsiniz -->
        <input type="text" name="keyword" class="form-control" placeholder="Arama yapın..." />
    </div>
    
    <div class="col-xs-2">
        <button class="btn btn-primary btn-search btn-block">Gönder</button>
    </div>
}


[HttpPost] 
public ActionResult Search(FormCollection collection)
{
    var keyword = string.Empty;
    
    if (collection["keyword"] != null)
        keyword = collection["keyword"].ToString();
        
    return RedirectToAction("Index", "Home", new { keyword = keyword });
}


Yazılarıma abone olmak ister misiniz?
Spam yapılmaz, sadece bildirim amaçlıdır. İstediğiniz zaman abonelikten çıkabilirsiniz.
İlginizi çekebilecek diğer yazılar.
VS2015'in 3. update'ini yaptıktan sonra asp.net core web uygulaması yaratmak istediğimde şu şekilde bir hata ile karşılaştım. "Exception : The system cannot find the file specified. (Exception from HRESULT: 0x80070002)". Çözümü oldukça basit.

Entity framework code first kullanıyorsanız ve inheritance yapıp yeni bir class yarattığınızda bunun gibi bir hata alırsınız. Bunun nedeni fluent api'nin inheritance yapılan class ile ana class'ın map yapmaya çalışması ve ilgili kolonu veritabanında bulamamasıdır. Çözümü ise inherit olmuş class'a [NotMapped] DataAnnotations attribute'unu eklemek.

Asp.Net Mvc ile recursive nasıl yazılır, @helper veya HtmlHelper kullanarak recursive fonksiyon yazmak, Asp.Net MVC View recursive fonksiyon nasıl yazılır?