I tried to replicate your code to try and get your solution working. Below is what I came up with and it is tested. Please edit to fit in with your scenario.
I have indented your drop down markup for readability purposes:
@Html.DropDownList("Reason",
new[]
{
new SelectListItem { Text="-Select-", Value= "-Select-", Selected = true },
new SelectListItem { Text="Price", Value= "Price" },
new SelectListItem { Text="3P", Value= "3P" },
new SelectListItem { Text="Freight Collect", Value= "Freight Collect" },
new SelectListItem { Text="Change in Relationships", Value= "Change in Relationships" }
}
)
And the resulting output looks like this:
<select id="Reason" name="Reason">
<option selected="selected" value="-Select-">-Select-</option>
<option value="Price">Price</option>
<option value="3P">3P</option>
<option value="Freight Collect">Freight Collect</option>
<option value="Change in Relationships">Change in Relationships</option>
</select>
In order for an event to trigger you need to add a listener to your drop down. In jQuery this is very easy to subscribe to the on change event.
And your jQuery would look like this:
<script>
$(document).ready(function () {
$('#Reason').change(function () {
alert('select value has changed to ' + $('#Reason').val());
UpdateRecords();
});
});
</script>
I hope this helps.