Гость
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера / 25 сообщений из 36, страница 1 из 2
29.07.2021, 13:03
    #40087019
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Здравствуйте!

Необходимо обновить тело tbody таблицы не перезагружая страницу. Страница формируется mvc-контроллером. Сама таблица:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
<table class="table" id="pollingStationsTable">
    <thead>
        <tr>
            <th></th>
            <th>
                @Html.DisplayNameFor(model => model.Station)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.City)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Street)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.House)
            </th>
            <th></th>
        </tr>
    </thead>
    <tbody id="tableBodyPollingStation">
        @foreach (var item in Model)
        {
            <tr>
                <td></td>
                <td>
                    @Html.DisplayFor(modelItem => item.Station.Name)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.City.Name)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.Street.Name)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.House.Name)
                </td>
                <td>
                    <a asp-action="Edit" asp-route-id="@item.IdPollingStation">Править</a> |
                    <a asp-action="Delete" asp-route-id="@item.IdPollingStation">Удалить</a>
                </td>
            </tr>
        }
    </tbody>
</table>



Для этого в mvc-контроллере, который формирует данную страницу прописал нужный метод, который принимает POST-запросы - GetPolingStationsByElectoralDistrict:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
public class PollingStationsController : Controller
    {
        private readonly VoterCollectorContext _context;

        public PollingStationsController(VoterCollectorContext context)
        {
            _context = context;

        }

        // GET: PollingStations
        public async Task<IActionResult> Index()
        {
            var voterCollectorContext = _context.PollingStation.Include(s => s.Station).Include(p => p.City).Include(p => p.House).Include(p => p.MicroDistrict).Include(p => p.Street);
            return View(await voterCollectorContext.ToListAsync());
        }

[HttpPost]
        [ValidateAntiForgeryToken]
        public IActionResult GetPolingStationsByElectoralDistrict([FromBody] ElectoralDistrictDTO electoralDistrictDTO)
        {
            List<District> districts = _context.District.Where(d => d.ElectoralDistrictId == electoralDistrictDTO.IdElectoralDistrict).ToList();
            List<int> selectStationsId = districts.Select(d => d.StationId ?? 0).ToList();

            IQueryable<PollingStation> pollingStations = _context.PollingStation.Include(p => p.Station).Include(p => p.City).Include(p => p.Street).Include(p => p.House)
                .Where(p => selectStationsId.Contains(p.StationId ?? 0));

            return PartialView(pollingStations);
        }
}



Подключил файл , написал в нем JS функцию, которая формирует и отправляет ajax-запрос на сервер:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
$(function () {
    $("#SelectElectoralDistrictId").change(function () {
        var formData = {'IdElectoralDistrict': Number.parseInt($('#SelectElectoralDistrictId').val()), 'Name': $('#SelectElectoralDistrictId>option:selected').text() };

        $.ajax({
            type: 'POST',
        //    url: '@Url.Action("GetPolingStationsByElectoralDistrict")',
            url: 'PollingStations/GetPolingStationsByElectoralDistrict/',
            headers:
            {
                'Accept': 'application/json',
                'Content-Type': 'application/json',
                'RequestVerificationToken': $('#RequestVerificationToken').val()
            },
            dataType: "json",
            data: JSON.stringify(formData),
            success: function (data) {

                $('#tableBodyPollingStation').replaceWith(data);

            },
            error: function (result, status, er) {
                alert("error: " + result + " status: " + status + " er:" + er);
            }
        });
    });
});


Для обновления tbody таблицы данными с сервера создал представление :
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
@model IEnumerable<voteCollector.Models.PollingStation>;
@{
    ViewData["Title"] = "GetPolingStationsByElectoralDistrict";
}

<tbody id="tableBodyPollingStation">
    @foreach (var item in Model)
    {
        <tr>
            <td></td>
            <td>
                @Html.DisplayFor(modelItem => item.Station.Name)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.City.Name)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Street.Name)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.House.Name)
            </td>
            <td>
                <a asp-action="Edit" asp-route-id="@item.IdPollingStation">Править</a> |
                <a asp-action="Delete" asp-route-id="@item.IdPollingStation">Удалить</a>
            </td>
        </tr>
    }
</tbody>


После возврата объектов на фронт он попадает в for, созданного частичного представления GetPolingStationsByElectoralDistrict, но уже на 2-ой итерации выдает ошибку - error:
автор[object Object] status: parsererror er:SyntaxError: Unexpected token < in JSON at position 2.
Попытался вернуть json вместо представления:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
[HttpPost]
        [ValidateAntiForgeryToken]
        public JsonResult GetPolingStationsByElectoralDistrict([FromBody] ElectoralDistrictDTO electoralDistrictDTO)
        {
            List<District> districts = _context.District.Where(d => d.ElectoralDistrictId == electoralDistrictDTO.IdElectoralDistrict).ToList();
            List<int> selectStationsId = districts.Select(d => d.StationId ?? 0).ToList();

            List<PollingStation> pollingStations = _context.PollingStation.Include(p => p.Station).Include(p => p.City).Include(p => p.Street).Include(p => p.House)
                .Where(p => selectStationsId.Contains(p.StationId ?? 0)).ToList();

            var jsonPolingStations = Json(pollingStations);

            return jsonPolingStations;

            //return PartialView(pollingStations);
        }



Ошибка сервера - 500
...
Рейтинг: 0 / 0
29.07.2021, 17:00
    #40087120
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Vlad__i__mir
После возврата объектов на фронт он попадает в for
Где по-твоему выполняется For при использовании Razor? На сервере или на клиенте


Vlad__i__mir
Попытался вернуть json вместо представления:
Если ты хочешь заменить содержимое body, тебе это никак не поможет, тебе нужна разметка
...
Рейтинг: 0 / 0
29.07.2021, 17:04
    #40087124
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Vlad__i__mir
Код: javascript
1.
'Accept': 'application/json',

зачем ты это написал?
...
Рейтинг: 0 / 0
29.07.2021, 17:49
    #40087145
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Vlad__i__mir,
Я не знаю, что у Вас за проблема вызвать в контроллере штучку, которая будет возвращать данные на клиент в виде json по коду методом гет. А на клиенте вызвать эту штуку, и яваскоиптом встроить в DOM все данные. Работы минут на десять, большая часть из них уйдет на поиск чего открыть, открытие, питие чая, и т.д.
...
Рейтинг: 0 / 0
29.07.2021, 17:55
    #40087148
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
В том, что ТС держится за MVC, от которого давно пора отказаться в пользу уже давно уже проработанных шаблонизаторов на клиенте. При этом, по всей видимости, имеет очень слабое представление о его жизненном цикле.
MVC не сильно-то заточен для создания SPA
...
Рейтинг: 0 / 0
29.07.2021, 20:19
    #40087173
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
ShSerge
Vlad__i__mir,
Я не знаю, что у Вас за проблема вызвать в контроллере штучку, которая будет возвращать данные на клиент в виде json по коду методом гет. А на клиенте вызвать эту штуку, и яваскоиптом встроить в DOM все данные. Работы минут на десять, большая часть из них уйдет на поиск чего открыть, открытие, питие чая, и т.д.

Shocker.Pro

Я так и пробовал делать через POST-запрос, вот:
написал api-контроллер, который мне возвращает нужный json-массив:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
[Route("api/[controller]")]
    [ApiController]
    [Produces("application/json")]
    public class APIPollingStationsController : ControllerBase
    {

        private readonly VoterCollectorContext _context;

        public APIPollingStationsController(VoterCollectorContext context)
        {
            _context = context;
        }


        // POST api/<APIPollingStationsController>
        [HttpPost("SearchPolingStationsByElectoralDistrict")]
        public IActionResult SearchPolingStationsByElectoralDistrict([FromBody]ElectoralDistrictDTO electoralDistrictDTO)
        {
            List<District> districts = _context.District.Where(d => d.ElectoralDistrictId == electoralDistrictDTO.IdElectoralDistrict).ToList();
            List<int> selectStationsId = districts.Select(d => d.StationId ?? 0).ToList();

            List<PollingStation> pollingStations = _context.PollingStation.Include(p => p.City).Include(p => p.Street).Include(p => p.House)
                .Where(p => selectStationsId.Contains(p.StationId ?? 0)).ToList();

            List<PollingStationDTO> pollingStationDTOs = pollingStations.Select(
            p => new PollingStationDTO { IdPollingStation = p.IdPollingStation, Name = p.Name, CityName = p.City.Name, StreetName = p.Street.Name, HouseName = p.House.Name }).ToList();

            return Ok(pollingStationDTOs);
        }

    }



написал ajax-запрос, в котором получаю нужный мне json:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
$(function () {
    $("#SelectElectoralDistrictId").change(function () {
        var formData = { 'IdElectoralDistrict': Number.parseInt($('#SelectElectoralDistrictId').val()), 'Name': $('#SelectElectoralDistrictId>option:selected').text() };
        $.ajax({
            // url: "http://localhost:18246/api/APIPollingStations/searchStreets",
            url: partMyURL + "/api/APIPollingStations/SearchPolingStationsByElectoralDistrict",
            //url: "/CollectVoters/api/APIPollingStations/SearchPolingStationsByElectoralDistrict",
            headers:
            {
                'Accept': 'application/json',
                'Content-Type': 'application/json',
                'RequestVerificationToken': $('#RequestVerificationToken').val()
            },
            type: 'POST',
            dataType: "json",
            data: JSON.stringify(formData),
            success: function (data) {

                dataSort = [];
                if (data != undefined) {
                        dataSort = data.sort(function (a, b) {
                        return ((a.name === b.name) ? 0 : ((a.name > b.name) ? 1 : -1));
                    });
                }
                dataFillingTableBody(dataSort, 'pollingStationsTable');

            },
            error: function (result, status, er) {
                alert("error: " + result + " status: " + status + " er:" + er);
            }
        });

    });
});



и соответственно функции, которые заполняют tbody:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
function dataFillingTableBody(data, idObjectTable) {

    //var table = document.getElementById(idObjectTable);
    var bodyTable = $(`#${idObjectTable} tbody`);
    //var table = $(idObjectTable);
    //$(idObjectTable + ' tbody').empty();
    $('#'+idObjectTable + ' tbody > tr').remove();

    for (let i = 0; i < data.length; i++) {

        bodyTable.append(createRow(data[i]));
    }

}

function createRow(data) {

    var trElement = '<tr>';

    for (key in data) {

        trElement += '<td>' + data[key] + '</td>';
    }

    trElement += '</tr>';

    return trElement;
}



Но у меня возникла проблема - представление сформировано Rayzor и в последней колонке каждой строки добавляются ссылки для правки и удаления на другие представления:
Код: html
1.
2.
3.
4.
<td>
                    <a asp-action="Edit" asp-route-id="@item.IdPollingStation">Править</a> |
                    <a asp-action="Delete" asp-route-id="@item.IdPollingStation">Удалить</a>
                </td>


и как их добавить в последнею ячейку каждой строки я не знаю. Если знаете подскажите
...
Рейтинг: 0 / 0
29.07.2021, 20:24
    #40087174
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Shocker.Pro
В том, что ТС держится за MVC, от которого давно пора отказаться в пользу уже давно уже проработанных шаблонизаторов на клиенте. При этом, по всей видимости, имеет очень слабое представление о его жизненном цикле.
MVC не сильно-то заточен для создания SPA


Ну я знаю, что это не очень хорошо, но времени мало, поэтому использую, то что знакомо.
На будущее планирую изучить. Какой посоветуете?
...
Рейтинг: 0 / 0
29.07.2021, 20:26
    #40087175
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Shocker.Pro
Vlad__i__mir
После возврата объектов на фронт он попадает в for
Где по-твоему выполняется For при использовании Razor? На сервере или на клиенте


Vlad__i__mir
Попытался вернуть json вместо представления:
Если ты хочешь заменить содержимое body, тебе это никак не поможет, тебе нужна разметка


Наверное на сервере, потому что всё-таки for С#.

Что значит нужна разметка?
Что и как мне нужно вернуть из контроллера?
...
Рейтинг: 0 / 0
29.07.2021, 20:28
    #40087176
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Shocker.Pro
Vlad__i__mir
Код: javascript
1.
'Accept': 'application/json',

зачем ты это написал?


Потому что отправляю на сервер json-объект
...
Рейтинг: 0 / 0
29.07.2021, 20:29
    #40087177
love_bach
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Vlad__i__mir
Shocker.Pro
пропущено...
зачем ты это написал?


Потому что отправляю на сервер json-объект


это Content-Type
...
Рейтинг: 0 / 0
29.07.2021, 20:46
    #40087178
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Разметка на клиенте, а не на сервере. Хотя ее можно и нужно подготовить на сервере. А дальше - яваскрипт. Даже если Вы найдете какой-то компонент для аспнет, все равно - javascript.
...
Рейтинг: 0 / 0
29.07.2021, 20:49
    #40087179
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Vlad__i__mir
использую, то что знакомо.
Vlad__i__mir
Наверное на сервере
Вот это и показывает, что нифига тебе это не знакомо, так что и смысла использовать особо нет.


Vlad__i__mir
Наверное на сервере
да, на сервере, поэтому высказывание
Vlad__i__mir
После возврата объектов на фронт он попадает в for,
абсолютно бессмысленное


Vlad__i__mir
Что значит нужна разметка?
то и значит. Ты заменяешь содержимое тэга - а содержимое тэга - это разметка.

На самом деле у тебя абсолютно смутное представление о том, как работает MVC приложение, поэтому для начала было бы неплохо прочесть учебник по MVC (кстати, то, что ты хочешь сделать вручную, есть в MVC и называется AjaxForm). Но, ЕМНИП, я уже не первый раз даю этот совет, не помогает.


Vlad__i__mir
Потому что отправляю на сервер json-объект
вот просто перед тем, как ответить что попало, можно было бы задать себе вопрос "а почему мне задали такой вопрос, наверное что-то здесь не так", потом полезть в интернет и выяснить
https://developer.mozilla.org/ru/docs/Web/HTTP/Headers/Accept
но нет, это не наш путь, лишь бы ответить.
...
Рейтинг: 0 / 0
29.07.2021, 20:54
    #40087181
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Vlad__i__mir
и как их добавить в последнею ячейку каждой строки я не знаю. Если знаете подскажите
Выкинуть из головы этот подход. Либо ты пишешь MVC-приложение, и возвращаешь с сервера разметку, сформированную через PartialView, которое даст тебе возможность использовать твои любимые asp-action asp-route и т.п. Либо ты пишешь SPA-приложение на связке web-api + какой-то шаблонизатор: vue.js, React, Angular, чтобы не заниматься вот этой вот фигнёй с формированием разметки с помощью js на сервере.
...
Рейтинг: 0 / 0
29.07.2021, 20:56
    #40087183
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
ShSerge
Разметка на клиенте, а не на сервере. Хотя ее можно и нужно подготовить на сервере. А дальше - яваскрипт. Даже если Вы найдете какой-то компонент для аспнет, все равно - javascript.


До меня не доходит как мне записать вот этот Rayzor-код, который ведет в mvc-контроллер в последние ячейки строк:
Код: javascript
1.
2.
<a asp-action="Edit" asp-route-id="@item.IdPollingStation">Править</a> |
                    <a asp-action="Delete" asp-route-id="@item.IdPollingStation">Удалить</a>
...
Рейтинг: 0 / 0
29.07.2021, 21:05
    #40087185
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Shocker.Pro
Vlad__i__mir
и как их добавить в последнею ячейку каждой строки я не знаю. Если знаете подскажите
Выкинуть из головы этот подход. Либо ты пишешь MVC-приложение, и возвращаешь с сервера разметку, сформированную через PartialView, которое даст тебе возможность использовать твои любимые asp-action asp-route и т.п. Либо ты пишешь SPA-приложение на связке web-api + какой-то шаблонизатор: vue.js, React, Angular, чтобы не заниматься вот этой вот фигнёй с формированием разметки с помощью js на сервере.


У меня уже процентов 30 работает через web-api, то что не удалось нормально реализовать через mvc )

В общем я понял, что эти asp-action я уже не смогу переписать через web-api, а переписывать сейчас все на web-api уже поздно и времени нет.

Подскажите, что я не правильно сделал в своем варианте, когда пытаюсь сформировать через PartialView?
...
Рейтинг: 0 / 0
29.07.2021, 21:06
    #40087186
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Vlad__i__mir
Подскажите, что я не правильно сделал в своем варианте, когда пытаюсь сформировать через PartialView?
для начала заголовки
...
Рейтинг: 0 / 0
29.07.2021, 21:15
    #40087189
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
love_bach
Vlad__i__mir
пропущено...


Потому что отправляю на сервер json-объект


это Content-Type


ну тут я перепутал конечно
...
Рейтинг: 0 / 0
29.07.2021, 21:28
    #40087191
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Shocker.Pro
Vlad__i__mir
Подскажите, что я не правильно сделал в своем варианте, когда пытаюсь сформировать через PartialView?
для начала заголовки


Убрать
Код: javascript
1.
'Accept': 'application/json'

, пусть сам определит какой контент?

Ещё чего-нибудь?
...
Рейтинг: 0 / 0
29.07.2021, 21:32
    #40087192
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Vlad__i__mir
Ещё чего-нибудь?
ну так ты сделай и смотри, какая дальше ошибка будет. У меня твоего проекта нет, чтобы его в отладке запустить, а ты, как видно, отладкой не очень любишь пользоваться.
...
Рейтинг: 0 / 0
29.07.2021, 22:06
    #40087199
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Shocker.Pro
Vlad__i__mir
Ещё чего-нибудь?
ну так ты сделай и смотри, какая дальше ошибка будет. У меня твоего проекта нет, чтобы его в отладке запустить, а ты, как видно, отладкой не очень любишь пользоваться.


Завтра на работе. Склонировал с git'a, изменения в бд залил, а он мне исключение при ToListAsync() выдает:
авторInvalidCastException: Specified cast is not valid.
MySqlConnector.Core.Row.GetInt32(int ordinal) in Row.cs
MySql.Data.MySqlClient.MySqlDataReader.GetInt32(int ordinal) in MySqlDataReader.cs
lambda_method(Closure , QueryContext , DbDataReader , ResultContext , int[] , ResultCoordinator )
Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable<T>+AsyncEnumerator.MoveNextAsync()
Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync<TSource>(IQueryable<TSource> source, CancellationToken cancellationToken)
Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync<TSource>(IQueryable<TSource> source, CancellationToken cancellationToken)
voteCollector.Controllers.FriendsController.Index() in FriendsController.cs
-
string userName;
// userName=(string)TempData["userName"];
userName = User.Identity.Name;
var voterCollectorContext = _context.Friend.Include(f => f.City).Include(f => f.ElectoralDistrict).Include(f => f.FieldActivity).Include(f => f.GroupU).Include(f => f.House).Include(f => f.MicroDistrict).Include(f => f.PollingStation).Include(f => f.Street).Include(f => f.User).
Where(f => f.User.UserName.Equals(userName));
List<Friend> friends = await voterCollectorContext.ToListAsync();
return View(friends);
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Index([Bind("UserName", "Password", "ReturnUrl")] LoginModel loginViewModel)
Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor+TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, object controller, object[] arguments)


но на работе все нормально было, приду запущу, надо поспать
...
Рейтинг: 0 / 0
30.07.2021, 07:04
    #40087213
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Shocker.Pro
Vlad__i__mir
Ещё чего-нибудь?
ну так ты сделай и смотри, какая дальше ошибка будет. У меня твоего проекта нет, чтобы его в отладке запустить, а ты, как видно, отладкой не очень любишь пользоваться.


Сделал, точно также на 2-ой итерации заполнения for-ом tbody ошибка
авторerror: [object Object]Подтвердите действия на странице ...
status: parsererror er:SyntaxError: Unexpected token < in JSON at position 2
...
Рейтинг: 0 / 0
30.07.2021, 08:19
    #40087219
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Shocker.Pro
Vlad__i__mir
Ещё чего-нибудь?
ну так ты сделай и смотри, какая дальше ошибка будет. У меня твоего проекта нет, чтобы его в отладке запустить, а ты, как видно, отладкой не очень любишь пользоваться.


Заработало! Спасибо!
Нужно было ещё убрать
Код: html
1.
dataType: "json",

)
Блин, столько времени убито из-за 2-х заголовок в запросе.

Вот такие вопросы возникли:
Rayzor получается рисует разметку на сервере и отдает на фронт уже готовую html-страницу?
Это существенно нагружает сервер, если сравнивать с тем, когда мы пишем web-api и отдаем контент в json в тот же Angular, который рисует разметку уже на клиенте не используя вычислительные мощности сервера?
...
Рейтинг: 0 / 0
30.07.2021, 09:36
    #40087247
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Vlad__i__mir
Блин, столько времени убито из-за 2-х заголовок в запросе.
потому что нужно понимать, зачем написана каждая строчка в твоем коде, а не тупо копипастить, в надежде, что заработает.


Vlad__i__mir
Это существенно нагружает сервер, если сравнивать с тем, когда мы пишем web-api и отдаем контент в json в тот же Angular, который рисует разметку уже на клиенте не используя вычислительные мощности сервера?
Ну тут ты выбираешь, нагружать клиента или сервер. Когда послабее были клиенты, иногда проще было наращивать мощность сервера, чтобы не получать дико тормозящее приложение. Сейчас клиенты стали помощнее.
...
Рейтинг: 0 / 0
30.07.2021, 19:35
    #40087418
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Shocker.Pro
Vlad__i__mir
Блин, столько времени убито из-за 2-х заголовок в запросе.
потому что нужно понимать, зачем написана каждая строчка в твоем коде, а не тупо копипастить, в надежде, что заработает.


Ну вообще я это не копипастил, а просто написал запрос по аналогии с теми, что писал до этого для обновления полей через web-api
...
Рейтинг: 0 / 0
30.07.2021, 20:43
    #40087429
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
Vlad__i__mir
Ну вообще я это не копипастил, а просто написал запрос по аналогии с теми, что писал до этого для обновления полей через web-api
То есть ты осознанно написал
dataType: "json"
Ну еще лучше
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера / 25 сообщений из 36, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]