public class Book
{
public Book()
{
this.Clients = new List<Client>();
}
public int Id { get; set; }
public string JId { get; set; }
public string Name { get; set; }
public string CompanyId { get; set; }
public virtual Company Company { get; set; }
public virtual ICollection<Client> Clients { get; set; }
}
Benim Kontrolörler:
[Authorize]
public ActionResult Action()
{
var books = GetBooks();
ViewBag.Books = new SelectList(books);
return View();
}
[Authorize]
[HttpPost]
public ActionResult Action(Book book)
{
if (ValidateFields()
{
var data = GetDatasAboutBookSelected(book);
ViewBag.Data = data;
return View();
}
return View();
}
İşte
benim modelidir
Benim Form:
@using (Html.BeginForm("Journaux","Company"))
{
<table>
<tr>
<td>
@Html.DropDownList("book", (SelectList)ViewBag.Books)
</td>
</tr>
<tr>
<td>
<input type="submit" value="Search">
</td>
</tr>
</table>
}
zaman, pa tıklayın Eylemdeki rameter 'book' her zaman boştur. Neyi yanlış yapıyorum?
Çalışıyor! Çok teşekkürler :) –
Bunun hakkında başka bir sorum var. Aslında, DropDownList seçilen değeri 'Book'un' ToString() 'yönteminin değerini döndürür. Bu yüzden Ids'yi DropDownList'ime yerleştirmeliyim, ancak listenin başlığı ve seçili değeri Kimlik olarak göstermesini istiyorum. Bunu yapmanın bir yolu var mı? Şimdilik, bu yolla kullanıyorum: 'ToString()' yöntemi "Id - Title" değerini döndürür ve ben sadece Id değerini korumak için 'SubString()' kullanırım. Ancak DropDownList'in yalnızca Kimliksiz Başlığı göstermesini istiyorum. –
DropDown'a ilettiğiniz 'SelectList' sınıfı 'IEnumerable', 'SelectListItem' 2 özelliği vardır:' Value' ve 'Text'. İstediğiniz biçime, "Değeri", Kitap örneğinizin ve "Metin" inizin "Kimlik" ine ayarlayabilirsiniz. –