Предположим, у вас есть эта настройка:
@Html.DropDownList("Description", (IEnumerable<SelectListItem>)ViewBag.Frequencies, new { id = "Frequency" })
@Html.ActionLink("Link Text", "ActionName", "ControllerName", null, new { id = "Link" })
Затем вы можете манипулировать атрибутом href
ссылки со строкой запроса:
$('#Frequency').change(function () {
var ddlValue = $(this).val();
var url = $('#Link').attr('href');
$('#Link').attr('href', url + '?ParameterName=' + ddlValue);
});
Если ссылка уже имеет значение параметра, подобное этому:
@Html.ActionLink("Link Text", "ActionName", "ControllerName", new { ParameterName = "OtherValue" }, new { id = "Link" })
Затем вы можете заменить значение параметра следующим образом:
$('#Frequency').change(function () {
var ddlValue = $(this).val();
$('#Link').attr('href', function () {
return this.href.replace("OtherValue", ddlValue);
});
});
Обратите внимание, что значение параметра, поставляемое с ActionLink
, обрабатывается на стороне сервера, что создает тег привязки с атрибутом href
, содержащим URL-адрес с именем контроллера, именем действия и параметрами строки запроса, как в примере ниже:
<a id="Link" href="/ControllerName/ActionName?ParameterName=[DDLValue]">Link Text</a>