Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk menetapkan nilai yang dipilih dalam mvc5 razor `html.dropdownlistfor` apabila nilai berada dalam array?
Menetapkan nilai yang dipilih dalam mvc5 cukur dengan nilai array Html.DropDownListFor
dalam ASP.NET MVC 5 untuk memilih nilai boleh menjadi rumit. Berikut adalah dua pendekatan untuk mengatasi cabaran ini: @Html.DropDownListFor()
kaedah 1: memanfaatkan editortemplates
Kaedah ini melibatkan mewujudkan editortemplate khusus untuk jenis data koleksi. kemudian diserahkan kepada editortemplate sebagai viewdata tambahan. SelectList
<code class="language-csharp">// AggregationLevelConfiguration.cshtml (EditorTemplate) @Html.DropDownListFor(m => m.HelperCodeType, (SelectList)ViewData["CodeTypeItems"]) // Main View @Html.EditorFor(m => m.Configurations, new { CodeTypeItems = Model.CodeTypeItems })</code>Pendekatan ini dengan bersih memisahkan logik dropdown dari pandangan utama, meningkatkan kebolehkerjaan.
Kaedah 2: Generasi SelectList Dinamik
Sebagai alternatif, anda boleh menggantikan sifat dengan IEnumerable
(ganti IEnumerable<GenericIdNameType>
dengan jenis sebenar anda). Kemudian, berulang melalui array dalam pandangan utama anda, mencipta GenericIdNameType
baru untuk setiap item dan menetapkan nilai yang dipilih dengan sewajarnya. SelectList
<code class="language-csharp">// Main View @for (int i = 0; i < Model.Configurations.Count(); i++) { @Html.DropDownListFor(m => m.Configurations[i].HelperCodeType, new SelectList(Model.CodeTypeItems, "Id", "Name", Model.Configurations[i].HelperCodeType)) }</code>Kaedah ini lebih langsung tetapi boleh menjadi kurang terkawal dengan array yang lebih besar. Pertimbangkan untuk menggunakan kaedah penolong untuk merangkum penciptaan
untuk kebolehbacaan yang lebih baik jika anda memilih pendekatan ini. Ingatlah untuk menyesuaikan SelectList
dan "Id"
untuk memadankan sifat sebenar anda. "Name"
Atas ialah kandungan terperinci Bagaimana untuk menetapkan nilai yang dipilih dalam mvc5 razor `html.dropdownlistfor` apabila nilai berada dalam array?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!