Guest User

Untitled

a guest
Sep 17th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. Hidden input for Dictionary<string, string> in ASP.NET MVC 3
  2. public class ViewModel{
  3. ...
  4. public ViewPart ViewPart { get; set; }
  5. }
  6.  
  7. public class ViewPart {
  8. ...
  9. public Dictionary<string, string> Flags { get; set; }
  10. }
  11.  
  12. Dictionary<string, string> flags = new Dictionary<string, string>();
  13. flags.Add("kind", "Edit");
  14. flags.Add("Command", "Save");
  15. ViewModel model = new ViewModel(){ Flags = flags };
  16. return View(model);
  17.  
  18. @foreach(var item in Model.ViewPart.Flags) {
  19. <input type="hidden" id="ViewPart_Flags_@(item.Key)" value="@item.Value" name="ViewPart.Flags[@(item.Key)]" />
  20. }
  21.  
  22. @foreach(var item in Model.ViewPart.Flags) {
  23. @Html.HiddenFor(modelItem => item)
  24. }
  25.  
  26. [HttpPost]
  27. public ActionResult MyPostAction(ViewModel model){
  28. //model.ViewPart.Flags is null
  29. }
  30.  
  31. var index = 0;
  32. foreach (var item in Model.ViewPart.Flags)
  33. {
  34.  
  35. <input type="hidden" value="@item.Key"
  36. name="ViewPart.Flags[@(index)].Key"/>
  37. <input type="hidden" value="@item.Value"
  38. name="ViewPart.Flags[@(index)].Value"/>
  39.  
  40. index++;
  41. }
  42. <input type="submit" value="Save"/>
  43.  
  44. foreach (var item in Model.ViewPart.Flags)
  45. {
  46.  
  47. <input type="hidden" value="@item.Key"
  48. name="ViewPart.Flags.Index"/>
  49. <input type="hidden" value="@item.Key"
  50. name="ViewPart.Flags[@(item.Key)].Key" />
  51. <input type="hidden" value="@item.Value"
  52. name="ViewPart.Flags[@(item.Key)].Value" />
  53. }
  54. <input type="submit" value="Save"/>
  55. }
  56.  
  57. [HttpPost]
  58. public ActionResult MyPostAction(ViewModel model, ViewPart viewPart)
  59. {
  60. model.ViewPart.Flags = viewPart.Flags;
  61. }
  62.  
  63. @foreach(var item in Model.ViewPart.Flags) {
  64. @Html.HiddenFor(modelItem => item)
  65. }
Add Comment
Please, Sign In to add comment