No puede hacer esto porque los ayudantes HTML ejecutan en el lado del servidor, mientras que el valor desplegable puede cambiar en el lado del cliente. La única forma de lograrlo es usar javascript. Se podría inscribirse en el evento onchange del desplegable y modificar el valor del href del ancla:
$(function() {
$('#ddlNames').change(function() {
var value = this.value; // get the selected value
// TODO: modify the value of the anchor
});
});
Esto probablemente no es la mejor solución, porque las rutas están configurados en el lado del servidor y con el fin de modificar el valor del enlace que necesita para hacer alguna manipulación de cadenas en el lado del cliente.
Como alternativa puede usar un formulario y un botón de enviar en lugar de un ancla. De esta manera el valor seleccionado de la lista desplegable se enviará automáticamente al servidor y no se necesita ningún javascript:
<% using (Html.BeginForm("Edit", "Members", new { area = "MembersArea" })) { %>
<%= Html.DropDownListFor(x => x.SelectedName,
new SelectList(Model.NameList, "ID", "Name"))%>
<input type="submit" value="Edit" />
<% } %>
Solo para aclarar: desea que el enlace a tomar el valor seleccionado de la DDL? Entonces, ¿siempre que cambie el DDL, quiere que se modifique el valor del enlace? Porque eso requerirá javascript para actualizar el valor como en la respuesta de @ Darin. – TJB
sí, quiero hacer eso. – Filip