Hidden input for Dictionary<string, string> in ASP.NET MVC 3
===

I need to get my model properties in Post action, so need to hidden element for them, but I have a problem with type of `Dictionary <string, string>`. this is My model:

    public class ViewModel{
     ...
     public ViewPart ViewPart { get; set; }
    }

    public class ViewPart {
     ...
     public Dictionary<string, string> Flags { get; set; }
    }


And My Controller: 

    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);

In View: 

    @foreach(var item in Model.ViewPart.Flags) { 
     <input type="hidden" id="ViewPart_Flags_@(item.Key)" value="@item.Value" name="ViewPart.Flags[@(item.Key)]" />
    }

Also I try This one :

    @foreach(var item in Model.ViewPart.Flags) { 
      @Html.HiddenFor(modelItem => item)
    }

But in Post action the `Flags` is Always null, why? where is my fault? Is there any better way to pass variables from View To Action?