У меня есть действие asp, которое имеет несколько параметров, которые необходимо передать контроллеру. Некоторые переменные могут изменяться в зависимости от действий на странице, например, у меня есть средство выбора даты, чтобы пользователь мог выбрать желаемую дату.
Когда они меняют дату, эта дата сохраняется как переменная Javascript.
<script>
$('#pvHistoricalDates').on('change', '#date', function (ev, picker) {
date = $(this).find("option:selected").val();
});
</script>
Есть ли способ вставить это значение переменной в следующее asp-действие, не создавая просто URL-адрес. Мне известно об этом решении, но мне любопытно, могу ли я просто вставить его напрямую как переменную.
<a asp-action = "LoadData" asp-route-account = "@Model.Account" asp-route-date = "???">Button</a>
Да, я мог бы в конечном итоге сделать это. Мне просто интересно, смогу ли я придерживаться asp-action и не собирать url самому.
Чего вы хотите здесь достичь? Вы пытаетесь отправить много данных обратно на сервер для ввода данных? Если да, почему бы не обернуть эти значения в форму? Если это просто быстрое обновление, вы можете использовать ajax
Типа просто общий вопрос: у меня есть страница с несколькими различными вариантами, на которых вы можете выбрать, какие из них обновлять некоторые переменные, в то время как многие из них останутся прежними, но, возможно, не все должны быть отправлены одновременно. Похоже, вы не можете поместить переменные JQuery или JS на страницу Razor, поэтому я просто сделаю вызов ajax, как вы упомянули.
Похоже, эта проблема отвечает на мой вопрос. stackoverflow.com/questions/28317182/…



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Помощники тегов в представлении бритвы выполняются на сервере, и результат этого (разметка HTML) будет отправлен в браузер, и браузер отобразит его. Итак, в это время помощник тега anhcor уже сгенерировал значение атрибута href ссылки.
Что вы можете сделать, так это переопределить обычное поведение при нажатии на ссылку с помощью JavaScript, прочитать значение элемента ввода со своей страницы и использовать его для создания нового URL-адреса и перехода к нему.
Вы можете указать фиктивное значение для параметра даты. Я также даю атрибут Id тегу привязки, который я буду использовать позже для своего селектора jQuery.
<a id = "btn" asp-action = "LoadData" asp-route-account = "@Model.Account"
asp-route-date = "dummyDate">Button</a>
и в вашем JavaScript (здесь я использую jQuery, но вы можете сделать то же самое в JavaScript)
$(function (){
$("#btn").click(function (e) {
// Stop the normal navigation
e.preventDefault();
//Build the new URL
var url = $(this).attr("href");
var date = $("#date").val();
url = url.replace("dummyDate", date);
//Navigate to the new URL
window.location.href = url;
});
});
Вы можете передать его как
query string parameterв свойurl, если это то, о чем вы спрашиваете.