|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Здравствуйте! Необходимо обновить тело 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.
Для этого в 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.
Подключил файл , написал в нем 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.
Для обновления 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.
После возврата объектов на фронт он попадает в 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.
Ошибка сервера - 500 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 13:03 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Vlad__i__mir После возврата объектов на фронт он попадает в for Vlad__i__mir Попытался вернуть json вместо представления: ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 17:00 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Vlad__i__mir Код: javascript 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 17:04 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Vlad__i__mir, Я не знаю, что у Вас за проблема вызвать в контроллере штучку, которая будет возвращать данные на клиент в виде json по коду методом гет. А на клиенте вызвать эту штуку, и яваскоиптом встроить в DOM все данные. Работы минут на десять, большая часть из них уйдет на поиск чего открыть, открытие, питие чая, и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 17:49 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
В том, что ТС держится за MVC, от которого давно пора отказаться в пользу уже давно уже проработанных шаблонизаторов на клиенте. При этом, по всей видимости, имеет очень слабое представление о его жизненном цикле. MVC не сильно-то заточен для создания SPA ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 17:55 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
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.
написал 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.
и соответственно функции, которые заполняют 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.
Но у меня возникла проблема - представление сформировано Rayzor и в последней колонке каждой строки добавляются ссылки для правки и удаления на другие представления: Код: html 1. 2. 3. 4.
и как их добавить в последнею ячейку каждой строки я не знаю. Если знаете подскажите ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 20:19 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Shocker.Pro В том, что ТС держится за MVC, от которого давно пора отказаться в пользу уже давно уже проработанных шаблонизаторов на клиенте. При этом, по всей видимости, имеет очень слабое представление о его жизненном цикле. MVC не сильно-то заточен для создания SPA Ну я знаю, что это не очень хорошо, но времени мало, поэтому использую, то что знакомо. На будущее планирую изучить. Какой посоветуете? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 20:24 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Shocker.Pro Vlad__i__mir После возврата объектов на фронт он попадает в for Vlad__i__mir Попытался вернуть json вместо представления: Наверное на сервере, потому что всё-таки for С#. Что значит нужна разметка? Что и как мне нужно вернуть из контроллера? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 20:26 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Shocker.Pro Vlad__i__mir Код: javascript 1.
Потому что отправляю на сервер json-объект ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 20:28 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Vlad__i__mir Shocker.Pro пропущено... зачем ты это написал? Потому что отправляю на сервер json-объект это Content-Type ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 20:29 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Разметка на клиенте, а не на сервере. Хотя ее можно и нужно подготовить на сервере. А дальше - яваскрипт. Даже если Вы найдете какой-то компонент для аспнет, все равно - javascript. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 20:46 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
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 но нет, это не наш путь, лишь бы ответить. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 20:49 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Vlad__i__mir и как их добавить в последнею ячейку каждой строки я не знаю. Если знаете подскажите ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 20:54 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
ShSerge Разметка на клиенте, а не на сервере. Хотя ее можно и нужно подготовить на сервере. А дальше - яваскрипт. Даже если Вы найдете какой-то компонент для аспнет, все равно - javascript. До меня не доходит как мне записать вот этот Rayzor-код, который ведет в mvc-контроллер в последние ячейки строк: Код: javascript 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 20:56 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Shocker.Pro Vlad__i__mir и как их добавить в последнею ячейку каждой строки я не знаю. Если знаете подскажите У меня уже процентов 30 работает через web-api, то что не удалось нормально реализовать через mvc ) В общем я понял, что эти asp-action я уже не смогу переписать через web-api, а переписывать сейчас все на web-api уже поздно и времени нет. Подскажите, что я не правильно сделал в своем варианте, когда пытаюсь сформировать через PartialView? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 21:05 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Vlad__i__mir Подскажите, что я не правильно сделал в своем варианте, когда пытаюсь сформировать через PartialView? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 21:06 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
love_bach Vlad__i__mir пропущено... Потому что отправляю на сервер json-объект это Content-Type ну тут я перепутал конечно ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 21:15 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Shocker.Pro Vlad__i__mir Подскажите, что я не правильно сделал в своем варианте, когда пытаюсь сформировать через PartialView? Убрать Код: javascript 1.
, пусть сам определит какой контент? Ещё чего-нибудь? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 21:28 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Vlad__i__mir Ещё чего-нибудь? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 21:32 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
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) но на работе все нормально было, приду запущу, надо поспать ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 22:06 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Shocker.Pro Vlad__i__mir Ещё чего-нибудь? Сделал, точно также на 2-ой итерации заполнения for-ом tbody ошибка авторerror: [object Object]Подтвердите действия на странице ... status: parsererror er:SyntaxError: Unexpected token < in JSON at position 2 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2021, 07:04 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Shocker.Pro Vlad__i__mir Ещё чего-нибудь? Заработало! Спасибо! Нужно было ещё убрать Код: html 1.
) Блин, столько времени убито из-за 2-х заголовок в запросе. Вот такие вопросы возникли: Rayzor получается рисует разметку на сервере и отдает на фронт уже готовую html-страницу? Это существенно нагружает сервер, если сравнивать с тем, когда мы пишем web-api и отдаем контент в json в тот же Angular, который рисует разметку уже на клиенте не используя вычислительные мощности сервера? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2021, 08:19 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Vlad__i__mir Блин, столько времени убито из-за 2-х заголовок в запросе. Vlad__i__mir Это существенно нагружает сервер, если сравнивать с тем, когда мы пишем web-api и отдаем контент в json в тот же Angular, который рисует разметку уже на клиенте не используя вычислительные мощности сервера? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2021, 09:36 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Shocker.Pro Vlad__i__mir Блин, столько времени убито из-за 2-х заголовок в запросе. Ну вообще я это не копипастил, а просто написал запрос по аналогии с теми, что писал до этого для обновления полей через web-api ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2021, 19:35 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Vlad__i__mir Ну вообще я это не копипастил, а просто написал запрос по аналогии с теми, что писал до этого для обновления полей через web-api dataType: "json" Ну еще лучше ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2021, 20:43 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Post запрос, который начинается со слова Get, просто гениально ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2021, 16:52 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Shocker.Pro Vlad__i__mir Ну вообще я это не копипастил, а просто написал запрос по аналогии с теми, что писал до этого для обновления полей через web-api dataType: "json" Ну еще лучше Vlad__i__mir по аналогии с теми, что писал до этого для обновления полей через web-api ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2021, 08:51 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Roman Mejtes Post запрос, который начинается со слова Get, просто гениально Во-первых не запрос, а имя метода, во-вторых в данном случае он отражает смысл того что делает метод, а не то к какому типу запросов он относится. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2021, 08:55 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Vlad__i__mir по аналогии с теми, что писал до этого для обновления полей через web-apiтак о чем я и сказал с самого начала - бездумно скопипастил Vlad__i__mir Во-первых не запрос, а имя метода, во-вторых в данном случае он отражает смысл того что делает метод, а не то к какому типу запросов он относится. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2021, 09:35 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Vlad__i__mir Во-первых не запрос, а имя метода, во-вторых в данном случае он отражает смысл того что делает метод, а не то к какому типу запросов он относится. Для выполнения этого метода я передаю с фронта объект DTO с 2-мя полями, которые мне необходимы. В строке запроса их передавать не хочу (чтобы пользователям меньше было видно, что там уходит на сервер), поэтому выбрал POST ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2021, 10:50 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
В GET внезапно никто не запрещает передавать тело ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2021, 12:04 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Vlad__i__mir чтобы пользователям меньше было видно, что там уходит на сервер ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2021, 12:05 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Shocker.Pro Vlad__i__mir чтобы пользователям меньше было видно, что там уходит на сервер Так то да, но где-то читал или слыхал, что при POST риск sql-инъекций ниже ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2021, 13:11 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
Vlad__i__mir Так то да, но где-то читал или слыхал, что при POST риск sql-инъекций ниже У тебя нет адресной строки, ты с аяксом и вебапи работаешь, то, что ты "слыхал", сюда не применимо. Это о том, что ты должен понимать те вещи, которые ты используешь, а не просто пользоваться слухами (вот я слышал, что с пятого этажа прыгать полезно) Vlad__i__mir риск sql-инъекций ниже ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2021, 13:26 |
|
Обновление тела таблицы (tbody) без обновления всей страницы c помощью mvc-контроллера
|
|||
---|---|---|---|
#18+
некоторые делают API только, используя POST а все остальное в теле ответа, со статусом 200 и запросы, и команды - такое тоже имеет место под солнцем ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2021, 18:20 |
|
|
start [/forum/topic.php?all=1&fid=18&tid=1354506]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 271ms |
total: | 419ms |
0 / 0 |