Powiedzmy masz ten model:Jak wdrożyć widok w MVC do renderowania Słownik ramach modelu i mapować słownika powrotem do modelu
//model
public class Stuff
{
public string Name { get; set; }
public Dictionary<String, String> Description { get; set; }
}
Chcę, aby móc być w stanie stworzyć działanie i odpowiadający mu widok, aby użytkownicy mogli dodać w formularzu nazwę obiektu Stuff i dodać wiele pozycji z opisem.
W tym konkretnym przypadku chcę, aby klucz był kodem językowym, takim jak "en", "de", "fr", "es" itd., A opis odpowiadający opisowi dla danego języka.
Na przykład w widoku, który może zobaczyć coś takiego:
@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();
}
Wszelkie rozwiązania alternatywne są akceptowane.
Dzięki.
To wszystko. Dziękuję Ci. Widziałem podobne posty, ale nie mogłem go znaleźć. Twoje wyjaśnienie było bardzo łatwe do zrozumienia i od razu do rzeczy. Dzięki. – agarcian