В Site.Master я закончил оборачивать выпадающий список своей собственной формой, которая отправлялась обратно на выделенный контроллер / действие.
<% Using Html.BeginForm("ChangeRole", "Home")%>
<div id="roleSelector">Change Role: <%=Html.DropDownList("Role", DirectCast(ViewData.Item("Roles"), SelectList), New With {.onchange = "this.form.submit();"})%></div>
<% End Using%>
В контроллере я использовал следующий код для изменения режима, а затем перенаправил обратно на ссылающийся URL.
<AcceptVerbs(HttpVerbs.Post)> _
Public Function ChangeRole() As ActionResult
Me.CurrentUser.SetRole(DirectCast([Enum].Parse(GetType(Models.ApplicationRoles), Me.Request.Item("Role")), Models.ApplicationRoles))
Return Redirect(Request.UrlReferrer.ToString())
End Function
Я не уверен, что это рекомендуемый способ, но я не смог придумать другое решение.