I ended up not posting the form but posting each of the select inputs when they change. I had to attach all the values I needed using "data-" attribute on the element posted. For example if you want a ID attached to it:
@Html.DropDownListFor(m => m.Value, Model.Options, new { @data_Id = Model.Id, })
Using jQuery then you're able to do it this way:
$(function() {
$('.dropdown').change(function() {
$.ajax(
{
type: "POST",
url: "Controller/Action",
data: {
Value: $(this).val(),
Id: $(this).attr('data-Id'),
}
});
});
});
It will now be posted to the url spesified. If you have a object with the same property name as the one you're posting in the data will it automaticly fill the correct values into these.
Another small note. If you want to go for the other approach with posting the whole form (as I did first) must you hide the submit button then trigger its click event with javascript for it to use ajax. Just submiting the form normally with javascript will the form be submitted normally and not using ajax.