Vous ne pouvez pas le faire parce que les aides html exécutent sur le côté du serveur alors que la valeur de la liste déroulante peut changer du côté client. La seule façon d'y parvenir est d'utiliser javascript. Vous pouvez vous inscrire à l'événement onchange de la liste déroulante et modifier la valeur de l'attribut href de l'ancre:
$(function() {
$('#ddlNames').change(function() {
var value = this.value; // get the selected value
// TODO: modify the value of the anchor
});
});
C'est probablement pas la meilleure solution, car les routes sont configurées sur le côté serveur et afin de modifier la valeur du lien que vous devez faire une manipulation de chaîne du côté du client. Comme alternative, vous pouvez utiliser un formulaire et un bouton de soumission au lieu d'une ancre. De cette façon, la valeur sélectionnée de la liste déroulante sera automatiquement envoyée au serveur et vous ne pas besoin de 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" />
<% } %>
Juste pour clarifier: vous voulez que le lien pour prendre la valeur sélectionnée de la LDD? alors à chaque fois que le DDL change, vous voulez changer la valeur du lien? Parce que cela nécessitera javascript pour mettre à jour la valeur comme dans la réponse @ Darin. – TJB
oui, je veux faire ça. – Filip