In my ASP.NET MVC 2 web application, I allow users to create custom input fields of different data types to extend our basic input form. While tricky, building the input form from a collection of custom fields is straight-forward enough.

However, I'm now to the point where I want to handle the posting of this form and I'm not certain what the best way to handle this would be. Normally, we'd use strongly-typed input models that get bound from the various statically-typed inputs available on the form. However, I'm at a loss for how to do this with a variable number of input fields that represent different data types.

**A representative input form might look something like:**

* My date field: [ date time input
control ]
* My text field: [ text input
field ]
* My file field: [ file upload
control ]
* My number field: [ numerical input control ]
* My text field 2: [text input field ]
* etc...

**Ideas I've thought about are:**

* Sending everything as strings (except for the file inputs, which would need to be handled specially).
* Using a model with an "object" property and attempting to bind to that (if this is even possible).
* Sending a json request to my controller with the data encoded properly and attempting to parse that.
* Manually processing the form collection in my controller post action - certainly an option, but I'd love to avoid this.

Has anyone tackled an issue like this before? If so, how did you solve it?

**Update:**

My "base" form is handled on another input area all together, so a solution doesn't need to account for any sort of inheritence magic for this. I'm just interested in handling the custom fields on this interface, not my "base" ones.

**Update 2:**

Thank you to ARM and smartcaveman; both of you provided good guidance for how this could be done. I will update this question with my final solution once its been implemented.