Auf die Implementierung einer view in MVC zu machen ein Wörterbuch in einem Modell und Karte das Wörterbuch zurück in das Modell

Lassen Sie uns sagen, Sie haben dieses Modell:

//model 
public class Stuff
{
  public string Name { get; set; }
  public Dictionary<String, String> Description { get; set; }
}

Ich möchte in der Lage sein zu können, erstellen Sie eine Aktion und die entsprechende Ansicht aus, damit Benutzer hinzufügen können, die in der form den Namen von dem Zeug Objekt, und können mehrere Description-Einträge.

In diesem speziellen Fall, will ich die Taste, um eine Sprache sein, die code wie 'en', 'de', 'fr', 'es', etc. und der Beschreibung die entsprechende Beschreibung für die angegebene Sprache.

Beispielsweise in der Ansicht " sehen Sie vielleicht so etwas wie dieses:

@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();
}

Alternative Lösungen akzeptiert werden.

Dank.

InformationsquelleAutor agarcian | 2011-10-22
Schreibe einen Kommentar