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.
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 aQuestiontype to avoid ambiguity) that outputs what you want.