Heim >Backend-Entwicklung >C++ >Wie bindet man Wörterbücher in ASP.NET MVC richtig?
Das Binden von Wörterbuchwerten in ASP.NET MVC ist im Allgemeinen einfach, erfordert jedoch die Einhaltung bestimmter Syntaxkonventionen für eine erfolgreiche Bindung.
In der Modellklasse sollten Sie das Wörterbuchattribut definieren und es mit dem Wert initialisieren:
<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>
Binden Sie in einer Ansicht mithilfe der folgenden Syntax an Wörterbuchschlüssel und -werte:
<code class="language-html">@foreach (KeyValuePair<string, string> kvp in Model.Params) { <tr><td> @Html.TextBox("Params[" + kvp.Key + "]") </td> </tr> }</code>
Diese Syntax stellt sicher, dass die Namensattributstruktur jedes Eingabefelds „Params[key]“ ist und der in der Modellbindung verwendeten Indexersyntax entspricht.
In ASP.NET MVC 4 bindet der Standardmodellbinder Wörterbücher mithilfe der typischen Wörterbuchindexersyntax (Eigenschaft[Schlüssel]). Daher wird das folgende Tag erfolgreich an Dictionary<string, string>
gebunden:
<code class="language-html">@foreach (var kvp in Model.MyDictionary) { <input type="checkbox" name="@string.Format("MyDictionary[{0}]", kvp.Key)" checked="@kvp.Value" /> }</code>
Dadurch können Sie Kontrollkästchen an Wörterbuchelemente binden. Beachten Sie, dass checked="@kvp.Value"
davon ausgeht, dass kvp.Value
ein boolescher Wert ist. Wenn kvp.Value
eine Zeichenfolge ist, müssen Sie diesen Teil des Codes entsprechend der tatsächlichen Situation anpassen, indem Sie beispielsweise checked="@(kvp.Value == "true")"
verwenden.
Das obige ist der detaillierte Inhalt vonWie bindet man Wörterbücher in ASP.NET MVC richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!