Digamos que usted tiene este modelo:Cómo implementar una vista en MVC para hacer un diccionario dentro de un modelo y para mapear el diccionario de nuevo en el Modelo
//model
public class Stuff
{
public string Name { get; set; }
public Dictionary<String, String> Description { get; set; }
}
Quiero ser capaz de ser capaz de crear una acción y su vista correspondiente para que los usuarios puedan agregar el objeto Nombre del objeto y agregar varias entradas de Descripción.
En este caso particular, quiero que la clave sea un código de idioma como 'en', 'de', 'fr', 'es', etc. y la descripción la descripción correspondiente para el idioma dado.
Por ejemplo, en la vista que se puede ver algo como esto:
@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();
}
se aceptan otras posibles soluciones.
Gracias.
Eso fue todo. Gracias. Había visto publicaciones similares pero no pude encontrarlo. Su explicación fue muy fácil de entender y directa al grano. Gracias. – agarcian