Mengikat nilai kamus dalam ASP.NET MVC secara amnya mudah, tetapi memerlukan mengikut konvensyen sintaks khusus untuk pengikatan yang berjaya.
Dalam kelas model, anda harus mentakrifkan atribut kamus dan memulakannya dengan nilai:
<code class="language-csharp">public class MyModel { public Dictionary<string, string> Params { get; set; } public MyModel() { Params = new Dictionary<string, string>(); Params.Add("Value1", "1"); Params.Add("Value2", "2"); Params.Add("Value3", "3"); } }</code>
Dalam paparan, ikat ke kunci kamus dan nilai menggunakan sintaks berikut:
<code class="language-html">@foreach (KeyValuePair<string, string> kvp in Model.Params) { <tr><td> @Html.TextBox("Params[" + kvp.Key + "]") </td> </tr> }</code>
Sintaks ini memastikan bahawa struktur atribut nama bagi setiap medan input ialah "Params[key]", sepadan dengan sintaks pengindeks yang digunakan dalam pengikatan model.
Dalam ASP.NET MVC 4, pengikat model lalai mengikat kamus menggunakan sintaks pengindeks kamus biasa (property[key]). Oleh itu, teg berikut akan berjaya diikat pada Dictionary<string, string>
:
<code class="language-html">@foreach (var kvp in Model.MyDictionary) { <input type="checkbox" name="@string.Format("MyDictionary[{0}]", kvp.Key)" checked="@kvp.Value" /> }</code>
Ini membolehkan anda mengikat kotak pilihan pada elemen kamus. Ambil perhatian bahawa checked="@kvp.Value"
menganggap bahawa kvp.Value
ialah boolean. Jika kvp.Value
ialah rentetan, anda perlu melaraskan bahagian kod ini mengikut situasi sebenar, seperti menggunakan checked="@(kvp.Value == "true")"
.
Atas ialah kandungan terperinci Bagaimana untuk Mengikat Kamus dengan Betul dalam ASP.NET MVC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!