Q:

ASP MVC dynamic fields in editor

I have a form which will include some optional questions that need to asked of the user. In my model it may look like:
public Dictionary<String, String> Questions { get; set; }

Where the key is the label and value is the text box. How can I create and populate the controls for this? I am new to ASP MVC, but it makes sense that something like this would be built in.
Is there a built in way to do this, or do I have to implement it myself? It seems like there should be a helper for it, since you don't really want to put this kind of code in the view.
I've tried
Html.EditorFor(model => model.Questions);

But it just spits out "[key, value]" to the view.

A:

There are a couple of ways you could go here.

You could write your own helper quite easily - maybe something like this:
public static string Question(Dictionary question)
{
   Html.Label(question.Key);
   Html.Textbox(question.Value);
}
Create a custom display template for Dictionary<string, string> (or, rather, wrap the dictionary in a Question type to avoid ambiguity) that outputs what you want.

