Diciamo che questo modello:Come implementare una vista in MVC per rendere un dizionario all'interno di un modello e per mappare il dizionario di nuovo nel modello
//model
public class Stuff
{
public string Name { get; set; }
public Dictionary<String, String> Description { get; set; }
}
Voglio essere in grado di essere in grado di creare un'azione e la vista corrispondente in modo che gli utenti possano aggiungere il modulo Nome dell'oggetto Stuff e aggiungere più voci Descrizione.
In questo caso particolare, voglio che la chiave sia un codice di lingua come 'en', 'de', 'fr', 'es', ecc. E la descrizione la descrizione corrispondente per la lingua specificata.
Ad esempio, nella vista si potrebbe vedere qualcosa di simile:
@model Stuff
@using(Html.BeginForm())
{
<div>
@Html.LabelFor(x=>x.Name)
@Html.TextBoxFor(x=>x.Name)
</div>
<div>
<!-- What goes in here to map to the Dictionary in the Stuff Model? -->
<input name="LanguageCode" value="en" /> <input name="DescriptionValue" />
<input name="LanguageCode" value="de" /> <input name="DescriptionValue" />
<input name="LanguageCode" value="fr" /> <input name="DescriptionValue" />
</div>
<div>
<input type="submit" value="save" />
</div>
}
// controller
[HttpGet]
public ActionResult Index()
{
return View(new Stuff());
}
[HttpPost]
public ActionResult Index (Stuff myStuff)
{
foreach(KeyValuePair kvp in myStuff.Description)
{
Trace.WriteLine(String.Format("Language: {0} - Description: {1}", kvp.Key, kvp.Value));
}
DBHelper.Save(myStuff);
return View();
}
sono accettate eventuali soluzioni alternative.
Grazie.
E 'stato. Grazie. Avevo visto post simili ma non riuscivo a trovarlo. La tua spiegazione è stata molto facile da capire e giusta al punto. Grazie. – agarcian