Добавить переменную Javascript в asp-route-data - PullRequest
0 голосов
/ 10 декабря 2018

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

1 Ответ

0 голосов
/ 11 декабря 2018

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

    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...