Saya mengalami masalah dengan DropDownListFor
di aplikasi MVC3 saya. Saya dapat menggunakan StackOverflow untuk mencari cara agar mereka muncul di Tampilan, tetapi sekarang saya tidak tahu cara menangkap nilai dalam properti yang sesuai pada Model Tampilan saat dikirimkan. Agar ini berfungsi, saya harus membuat kelas dalam yang memiliki ID dan properti nilai, lalu saya harus menggunakan an IEnumerable<Contrib>
untuk memenuhi DropDownListFor
persyaratan parameter. Sekarang, bagaimanapun, bagaimana MVC FW seharusnya memetakan nilai yang dipilih pada drop-down ini kembali ke properti string sederhana pada model tampilan saya?
public class MyViewModelClass
{
public class Contrib
{
public int ContribId { get; set; }
public string Value { get; set; }
}
public IEnumerable<Contrib> ContribTypeOptions =
new List<Contrib>
{
new Contrib {ContribId = 0, Value = "Payroll Deduction"},
new Contrib {ContribId = 1, Value = "Bill Me"}
};
[DisplayName("Contribution Type")]
public string ContribType { get; set; }
}
Dalam View saya, saya menempatkan dropdown pada halaman seperti ini:
<div class="editor-label">
@Html.LabelFor(m => m.ContribType)
</div>
<div class="editor-field">
@Html.DropDownListFor(m => m.ContribTypeOptions.First().ContribId,
new SelectList(Model.ContribTypeOptions, "ContribId", "Value"))
</div>
Saat saya mengirimkan formulir, ContribType
is (tentu saja) null.
Bagaimana cara yang benar untuk melakukan ini?