I am using the Html.DropDownList helper in ASP.NET MVC and I would like to make it read-only. Unfortunately, I also need it to submit its value on a form post.
I have found (through a similar question on SO) that using the below format will make the drop down read-only but it will not provide access to the control's value within the controller.
Html.DropDownList("Types", Model.Types, new { @disabled = "disabled" })
Does anyone know how to make a drop down list read-only or disabled with ASP.NET MVC while also allowing it to submit with a form post?
It's intended behavior on the web browser side - a disabled control will not post it's data to the server when a form is submitted.
You can fake it by putting a hidden field on the page with the value in it - just be sure to validate the data. Or use javascript to enable the field before the submit action happens.
If you're disabling a field, but still showing it on the page with some value, then there must be a way for you to know that value without having it send back from the browser to the server.
You can enable it on submit. Downside: it looks weird.
$(form).submit(function() {
$('#Types').removeAttr('disabled');
});
or copy the value into a hidden field on submit.
$(form).submit(function() {
$('#HiddenField').val($('#Types').val());
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With