powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.NET MVC 5 как Single page application
9 сообщений из 9, страница 1 из 1
ASP.NET MVC 5 как Single page application
    #39827823
Фотография Renziglov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.
Пытаюсь превратить ASP.NET MVC 5 в Single page application просто обновляя

Код: html
1.
2.
3.
<div id="centralBusinessContainer" class="content">
                    @RenderBody()
                </div>


ajax-вызовом

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
$.ajax({
                url: _url,
                success: function (data) {
                    $('#centralBusinessContainer').html(data);
                },
                error: function (result) { alert('updateCentralBusinessContainer failure'); }

            });


При этом лэйаут подавлен:
Layout = Request.IsAjaxRequest() ? null : "~/Views/Shared/_Layout.cshtml";

Все работает, но разрушается система jQuery сообщений. Публикую

Код: javascript
1.
2.
3.
4.
$(document).trigger({
                                    type: "EmployeeChanged",
                                    employeeId: currentId
                                });



Слушаю

Код: javascript
1.
2.
3.
4.
5.
$(document).ready(function () {
                 $(document).on("EmployeeChanged", function (e) {
                 //тут код обработки события 
            });
        });


При первой загрузке все пвбликуется, после аджаксового обновления перестает.
Пытался использовать для обмена сообщениями pubsub и obsrver. Та же проблема: первый раз события рассылаются, после аджаксового обновления нет. А обзервер вообще перестает работать.

Что не так с популированием @RenderBody через аджакс? Как подкрутить publish-subscribe?
Этот аджакстоый код выглядит как хак. Может есть другие способы обновлять @RenderBody асинхронно?
Спасибо.
...
Рейтинг: 0 / 0
ASP.NET MVC 5 как Single page application
    #39828604
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RenziglovПытаюсь превратить ASP.NET MVC 5 в Single page application просто обновляя

ээ... чего вы понимаете под Single page application, для начала? а то делаете чего-то не то.
...
Рейтинг: 0 / 0
ASP.NET MVC 5 как Single page application
    #39828835
Фотография Renziglov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Что я делаю, должно быть понятно из моего поста. Если не понятно, страница никогда не перегружается и не блымцает в отвратительной вебовской манере при смене экранов. При этом контроллеры вызываются и вью популируются как обычно без изменений в коде.
Перезагрузку станицы я оставляю, когда пользователь кликает на мэйн менью. И это хорошо. Это предотвращает мемори лик на клиенте, с которым я заработал гемор на таких SPA как Силверлайт.

Философская часть исчерпана. Что можете сказать по существу? Спасибо.
...
Рейтинг: 0 / 0
ASP.NET MVC 5 как Single page application
    #39828843
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Renziglov,

по существу вам никто не скажет - вы на коленке делаете свой SPA. те грабли что возникают, возникают в вашей реализации. кроме вас ее никто не знает.
оттого, что $.ajax вызывает url вызывает без перезагрузки страницы, нельзя делать вывод что она для этого пригодна.

после ajax обновления надо заново подключать обработчики.
или из того, что в хелпе метода on написано, что метод подключает обработчики для всех добавляемых элементов
$(document).on
то on метод работает для всех новы элементов, когда вы указали контейнер, куда все новые элементы будут добавляться.

в вашем виде все элементы без подключенного события добавляются
...
Рейтинг: 0 / 0
ASP.NET MVC 5 как Single page application
    #39828845
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделайте на vue или angular свой front
...
Рейтинг: 0 / 0
ASP.NET MVC 5 как Single page application
    #39829587
Calabonga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Renziglov,


Смутно представляю что именно вы хотите сделать, попробую предложить Angular + Web API: Как создать Angular-приложение на ASP.NET MVC 5 без использования MVC 5
Делал данный функционал для себя, может и вам пригодиться.
...
Рейтинг: 0 / 0
ASP.NET MVC 5 как Single page application
    #39829693
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RenziglovЧто можете сказать по существу?
А вы хотите полноценное SPA создать, или простенькие AJAX вызовы через jQuery натыкать?

Про последний уже написали: надо переподписываться на события, либо делегирование использовать (в документации рассказано про это).
...
Рейтинг: 0 / 0
ASP.NET MVC 5 как Single page application
    #39830692
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CalabongaRenziglov,


Смутно представляю что именно вы хотите сделать, попробую предложить Angular + Web API: Как создать Angular-приложение на ASP.NET MVC 5 без использования MVC 5
Делал данный функционал для себя, может и вам пригодиться.

Этот пример есть где-нибудь в github или другом месте?
...
Рейтинг: 0 / 0
ASP.NET MVC 5 как Single page application
    #39835035
Calabonga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг ХупинCalabongaRenziglov,


Смутно представляю что именно вы хотите сделать, попробую предложить Angular + Web API: Как создать Angular-приложение на ASP.NET MVC 5 без использования MVC 5
Делал данный функционал для себя, может и вам пригодиться.

Этот пример есть где-нибудь в github или другом месте?
Не думал, что надо в github выложить... кажется итак всё понятно... нет? А в статье не всё показано?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.NET MVC 5 как Single page application
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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