2014-10-26 7 views
29

MVC 5 Asp.Net üzerinde çalışıyorum ve this eğiticisini takip ediyorum. Filtre düğmesini tıkladığımda bu durumun nasıl sonuçlandığını merak ediyorum.@ Html.BeginForm() nasıl çalışır? ve Microsoft ASP.Net MVC 5 eğitiminde arama sonucu?

bu kod/Film/görünümünde Şimdi sıra bildiğim kadarıyla, ekranda bir metin kutusu bir düğme oluşturur

@using (Html.BeginForm()) 
{  
    <p> Title: @Html.TextBox("SearchString") <br /> 
    <input type="submit" value="Filter" /></p> 
} 

Index.cshtml

eklenen bir nokta gelir ki. Ama bu düğme arama (indeks) fonksiyonunu çağırıyor ve fonksiyonun içindeki metin kutusunun değerini geçiyor, bunu alamadım. Plzz bunu açıklıyor, ben yeni. Bu aptalca şeyler için üzgünüm. Teşekkürler

cevap

40

Bu aptalca bir soru değil. @html.BeginForm() bunun gibi çalışır. ActionControllerFormTypehtmlAttributes gibi ekleyebileceğiniz bazı parametreler vardır. İşleyiş şekli, eğer onu boş bırakırsanız, şu anda bulunduğunuz sayfada aynı adı taşıyan bir post aksiyonu ararsınız, örneğin, giriş sayfasındaysanız, bir giriş sonrası eylemi arar. Her zaman action ve controller numaralarına erişmesini istiyorum.

@html.BeginForm("AddUser", "Admin", FormMethod.Post, new { @class = "my_form"}) 

Yani formu içeren post action kabul etmeli parametreler olduğunu, ve bu Product, ViewModel veya tek dize parametreleri yani Model olabilir. arama ile durumunda eylem arama dizesi yöntemiyle geçirilecek için

[HttpPost] 
public ActionResult Search(string SearchString) 
{ 
    //do something here 
} 

, burada unutmayın gibi görünmelidir. <input>'un adı, eyleminizin aldığı parametreyle aynı olmalıdır. Bu yüzden bizim formumuzun bu gibi olması gerekir. Bu, netlik getiriyordur.

+1

Formumun aynısı söz konusu. Ayrıca benim eylem (Index) işlevindeki parametrede "searchString", "SearchString" (Burada S başkent) değil. Eğer sermaye ve küçük 'S' herhangi bir fark yaratmazsa, cevabınızı kabul ediyorum. –

+1

Eh, form kodunda farklı alfabe durumlarını değiştirerek cevabı çok memnun oldum. Hala çalışıyor. Teşekkürler ve kabul edilir :) –

+0

Model parametrelerini kullanabileceğim bir yol var mı? Örneğin, UserName, UserEmail ile bir modelim var ve sadece bir parametre ile bir işlev istiyorum - Model. – FrenkyB