Sí, puede suscribirse al evento onchange
.
@Html.DropDownListFor(m => m.ItemId, Model.ItemList, "Select an item...", new { onchange = "somefunction();" })
Tal como esto (ejemplo real):
@using (Ajax.BeginForm("Action", new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "divtoupdate", InsertionMode = InsertionMode.Replace }))
{
@Html.DropDownListFor(m => m.ItemId, Model.ItemList, "Select an item...", new { onchange = "doSubmit($(this).parents('form'));" })
}
Y luego tener esta función javascript (o similar)
<script>
function doSubmit(form){
// event.preventDefault(); doesn't work in IE8 so do the following instead
(event.preventDefault) ? event.preventDefault() : event.returnValue = false;
form.submit();
}
</script>
EDIT: En este ejemplo se supone que está utilizando discreta validación (y, por lo tanto, jQuery) y desea enviar un formulario, pero obviamente puede llamar a cualquier función de JavaScript para el evento onchange y hacer lo que desee. ..