Заполните переменную в C # бритву через Jquery - PullRequest
0 голосов
/ 01 июля 2019

У меня есть функция, которая извлекает данные благодаря библиотеке SignalR (в режиме реального времени)

И я хотел бы передать этот список в параметре Url.Action, чтобы перейти в мой контроллер.

<td>
    @{
        var Users = new List<UserConnected>();

    }

    @Html.Hidden("listUserConnected", "", new { id = "listUserConnected_" + @item.SET_NOM })
    <h3 class="text-warning"><span style="color: black" id="NombreConnection_@item.SET_NOM" onclick="chargementVuePartielleInModal('@Url.Action("DetailUsersConnected", "Parametrages", new {module = Users})')">0</span></h3>
</td>

......

chat.client.UpdateCountAccueil = function (count, listUsers) {
    //$('#@(Users)').push(listUsers);
    console.log("count accueil :" + count);
    $.each(listUsers, function (index, value) {
        console.log("listUsers : " + index + "  " + value.UserName);

    });


    $('#NombreConnection_Accueil').text(count);

}

Как в ASP.NET (с бритвой) я могу заполнить переменную благодаря функции в javascript?

Я хочу заполнитьмой список пользователей со списком, присутствующим в функции js "listUsers".И наконец отправил список пользователей, заполнивших мой контроллер через Url.Action.

Я попробовал несколько методов, включая:

$('#@(Users)').push(listUsers);

и

$.each(listUsers, function (index, value) {
    console.log("listUsers : " + index + "  " + value.UserName);
    @Users.Add(listUsers);  <-- ***listUsers not know*** 
});

Но это не такизменить что-либо

Ответы [ 3 ]

0 голосов
/ 01 июля 2019

Вам придется изменить способ, которым вы думаете о своей странице Razor.По сути, вы можете сохранить представление Razor, но вам нужно будет использовать клиентскую среду, такую ​​как Vue, React и т. Д., Чтобы лучше обрабатывать все события client / ajax.Если вы хотите запустить что-то быстро, вы, вероятно, все еще можете использовать https://knockoutjs.com/.

Проверьте https://knockoutjs.com/examples/helloWorld.html в качестве примера, но в основном вы можете выполнить начальную загрузку из Razor в json и перейти к обработкевсе остальное с кодом на стороне клиента.

https://www.dotnetcurry.com/aspnet-mvc/933/knockoutjs-aspnet-mvc-tutorial-beginner https://docs.microsoft.com/en-us/aspnet/single-page-application/overview/introduction/knockoutjs-template

Вы можете взглянуть на React, Vue и Angular, если хотите перейти к популярному решению.Angular немного тяжелее, поэтому вы можете начать с Vue и React, если вы не хотите путаться с маршрутизацией и начинать с приложения для каждого типа представления.

0 голосов
/ 01 июля 2019

вы не можете сделать с помощью JavaScript. Вы должны использовать вызов ajax, чтобы получить данные с сервера, как это:

function getLists(){
            $.ajax({
                url: controller/action,
                method: 'POST',
               //if you need parameters
                data: {parameter:parameter},
                //the list that you return from your controller
                success: function (data) {
                    $('#Users').push(data)
                }
            });
        }
0 голосов
/ 01 июля 2019

вы не можете сделать это, вы должны сделать это с помощью JavaScript и ajax-запроса.Поскольку страница бритвы отображается, а затем сервер отправляет HTML в ваш браузер.Вы можете отправить список пользователей, используя ajax

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