Zaten çok benzer soruların olduğunu biliyorum, ancak bunu anlamaya çalışmak için saatler harcadım ve diğer cevapların hiçbiri yardımcı görünmüyor!DropDownListFor - dizelerin basit bir listesini görüntüler
Sadece MVC kullanarak bir açılır listede dizelerinin listesini görüntülemek istiyorum. Bu gerçekten çok mu zor? "Metin" ve "Değer" ayrımı yok (MVC'nin bir tane gerektirdiği göz önüne alındığında) - kullanıcıya gösterilen dize benim değerin.
Bugüne kadar aşağıdaki var:
Denetleyici:
public ActionResult Index()
{
return View(new HomeViewModel());
}
ViewModel:
public class HomeViewModel
{
public HomeViewModel()
{
Items = new SelectList(new[]
{
new SelectListItem { Text = "One", Value = "One" },
new SelectListItem { Text = "Two", Value = "Two" },
});
}
public SelectList Items { get; set; }
}
Görünüm:
<% using (Html.BeginForm()) { %>
<% Html.DropDownListFor(x => x.Items, Model.Items); %>
<input type="submit" value="Go!" />
<% } %>
Ama şey Görüntülenmekte olan bir aşağı açılan listeyle sonuçlanmış gibi görünüyor. Neyi yanlış yapıyorum?
Arrgh, ne aptal bir hata! Artık 2 öğe içeren bir açılır liste görebiliyorum ama ikisi de System.Web.Mvc.SelectListItem diyor. SelectList'in yapıcısını çağırmamla ilgili bir sorun mu var? – Grokys
Oh evet - kurucuda, DropDown'da görüntülemek istediğiniz alanları belirtmeniz gerekir. Aksi takdirde, aldığınız şey varsayılan SelectListItem.ToString() 'dir. – Yakimych
Teşekkürler, güncellemeniz 2 tam olarak aradığım şey :) – Grokys