Добавить переменную Javascript в данные asp-маршрута

У меня есть действие 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>

Вы можете передать его как query string parameter в свой url, если это то, о чем вы спрашиваете.

Ryan Wilson 10.12.2018 21:42

Да, я мог бы в конечном итоге сделать это. Мне просто интересно, смогу ли я придерживаться asp-action и не собирать url самому.

A. Hasemeyer 10.12.2018 21:44

Чего вы хотите здесь достичь? Вы пытаетесь отправить много данных обратно на сервер для ввода данных? Если да, почему бы не обернуть эти значения в форму? Если это просто быстрое обновление, вы можете использовать ajax

Ryan Wilson 10.12.2018 21:46

Типа просто общий вопрос: у меня есть страница с несколькими различными вариантами, на которых вы можете выбрать, какие из них обновлять некоторые переменные, в то время как многие из них останутся прежними, но, возможно, не все должны быть отправлены одновременно. Похоже, вы не можете поместить переменные JQuery или JS на страницу Razor, поэтому я просто сделаю вызов ajax, как вы упомянули.

A. Hasemeyer 10.12.2018 21:51

Похоже, эта проблема отвечает на мой вопрос. stackoverflow.com/questions/28317182/…

A. Hasemeyer 10.12.2018 21:54
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
5
2 278
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Помощники тегов в представлении бритвы выполняются на сервере, и результат этого (разметка 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;

    });
});

Другие вопросы по теме