Из комментария на вопрос выше:
Так что теперь мне просто нужно перенаправить на: @Html.ActionLink("Branch", "Employees", new { Branch = item.Branch })
, но Item.Branch
будет $(this).val()
.Можно ли это сделать?
Возможно, есть более элегантный способ, но подход, который я всегда использовал, выглядит примерно так:
let url = '@Html.ActionLink("Branch", "Employees", new { Branch = "REPLACEME" })';
url = url.replace('REPLACEME', $(this).val());
window.location.href = url;
На стороне клиента этопревращается во что-то вроде:
let url = '/Brand/Employees?Branch=REPLACEME';
url = url.replace('REPLACEME', encodeURIComponent($(this).val()));
window.location.href = url;
Это было бы глупо для любого, кто изучает только код на стороне клиента, я уверен.Но поскольку параметр Branch
может находиться в строке запроса или может находиться в маршруте, и так как ASP.NET MVC Framework отвечает за управление этим, генерация URL иразмещение значения на стороне клиента в URL-адресе - это две отдельные обязанности.
Поэтому мы используем код на стороне сервера для генерации URL-адреса с заполнителем (может быть любой строкой, * 1025)* был произвольным выбором), а затем используйте код на стороне клиента для динамической замены этого заполнителя на желаемое значение.
Это по существу заменяет все, что вы пытаетесь сделать с AJAX в исходном вопросе.Если вам не нужно вызывать операцию на стороне сервера, чтобы получить результат, неизвестный коду на стороне клиента, для создания URL-адреса, вы можете просто полностью пропустить AJAX и создать этот URL-адрес напрямую.