Как уже говорил @Jasen, параметры @Url.Action()
помощника routeValues
обрабатываются на стороне сервера перед отправкой в браузер, и вы не можете изменить их напрямую, выбрав значение из элемента <select>
.Можно использовать код на стороне клиента, который предоставляет дополнительный параметр строки запроса, используя выбранное значение из элемента <select>
, как показано в этом примере:
Пример гиперссылки
<a id="link" href="#">Add New</a>
манипулирование на стороне клиента
$('#drpQuantity').change(function () {
var selected = $(this).val();
// use prop function to set href attribute of target anchor link
$('#link').prop('href', '@Url.Action("AddNewItems", "Home", new { ItemId = QitemId })' + '&Quantity=' + selected);
});
Если вы хотите использовать простой / ванильный JS, вам нужно обработать событие onchange
из <select>
и установить атрибут href
после полученияидентификатор ссылки на якорь / имя тега:
<select id="drpQuantity" onchange="setUrl(this)">...</select>
<script>
function setUrl(element) {
var value = element.value;
document.getElementById('link').href = '@Url.Action("AddNewItems", "Home", new { ItemId = QitemId })' + '&Quantity=' + selected;
}
</script>
Ссылка на привязку должна отображаться следующим образом:
<a id="link" href="/Home/AddNewItems?ItemId=1&Quantity=1">Add New</a>
Пример в реальном времени: .NET Fiddle