Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Hidden input for Dictionary<string, string> in ASP.NET MVC 3
- public class ViewModel{
- ...
- public ViewPart ViewPart { get; set; }
- }
- public class ViewPart {
- ...
- public Dictionary<string, string> Flags { get; set; }
- }
- Dictionary<string, string> flags = new Dictionary<string, string>();
- flags.Add("kind", "Edit");
- flags.Add("Command", "Save");
- ViewModel model = new ViewModel(){ Flags = flags };
- return View(model);
- @foreach(var item in Model.ViewPart.Flags) {
- <input type="hidden" id="ViewPart_Flags_@(item.Key)" value="@item.Value" name="ViewPart.Flags[@(item.Key)]" />
- }
- @foreach(var item in Model.ViewPart.Flags) {
- @Html.HiddenFor(modelItem => item)
- }
- [HttpPost]
- public ActionResult MyPostAction(ViewModel model){
- //model.ViewPart.Flags is null
- }
- var index = 0;
- foreach (var item in Model.ViewPart.Flags)
- {
- <input type="hidden" value="@item.Key"
- name="ViewPart.Flags[@(index)].Key"/>
- <input type="hidden" value="@item.Value"
- name="ViewPart.Flags[@(index)].Value"/>
- index++;
- }
- <input type="submit" value="Save"/>
- foreach (var item in Model.ViewPart.Flags)
- {
- <input type="hidden" value="@item.Key"
- name="ViewPart.Flags.Index"/>
- <input type="hidden" value="@item.Key"
- name="ViewPart.Flags[@(item.Key)].Key" />
- <input type="hidden" value="@item.Value"
- name="ViewPart.Flags[@(item.Key)].Value" />
- }
- <input type="submit" value="Save"/>
- }
- [HttpPost]
- public ActionResult MyPostAction(ViewModel model, ViewPart viewPart)
- {
- model.ViewPart.Flags = viewPart.Flags;
- }
- @foreach(var item in Model.ViewPart.Flags) {
- @Html.HiddenFor(modelItem => item)
- }
Add Comment
Please, Sign In to add comment