Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET Core
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/40: Рейтинг темы: голосов - 40, средняя оценка - 4.80
 Аватар для ViterAlex
8953 / 4865 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246

Net Core Razor Pages как вернуть частичное представление?

08.01.2018, 05:12. Показов 9155. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь тут разобраться. Есть Net Core Web Application, не MVC. Как на страницу вернуть частичное представление в ответ на ajax?
HTML5
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
@page
@model IndexModel
@{
    ViewData["Title"] = "Home page";
}
 
<hr />
<form asp-action="Search" data-ajax-method="POST" data-ajax-mode="Replace" data-ajax-success="onSuccess" data-ajax="true" data-ajax-update="foundTracks">
    <div class="form-group">
        <div class="col-sm-10">
            <input type="text" name="url" class="form-control" id="url">
        </div>
        <button type="submit" id="searchBtn" class="btn btn-primary"><span class="glyphicon glyphicon-search"></span>&nbsp;Найти</button>
    </div>
</form>
@section Scripts    {
    <script>
        function onSuccess() {
            $('#foundTracks').val();
            alert('Success!');
        }
        $(document).ready(function () {
            $('#searchBtn').prop('disabled', true)
            $('#url').on('keyup', function () {
                if ($(this).val() === '')
                    $('#searchBtn').prop('disabled', true);
                else
                    $('#searchBtn').prop('disabled', false)
            })
        })
    </script>
}
<div id="foundTracks">
    @Html.Partial("Programs", Model.ProgramInfo)
</div>
Вот если прямо его рендерить на странице, то это получается (строка 34), а вот обновить по запросу из формы не могу. Хотя запрос отрабатывает. Что нужно вернуть из метода OnPostSearch, чтобы обновить содержание div?

Добавлено через 5 часов 14 минут
Пока решил передачей $.ajax→json, но очень неудобно, если нужна более-менее сложная разметка, получается борода на js
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.01.2018, 05:12
Ответы с готовыми решениями:

Пагинация. Как установить колличество позиций на странице? Razor Pages с EF Core в ASP.NET Core
Изучаю учебник - Razor Pages с Entity Framework Core в ASP.NET Core // docs.microsoft.com/ru-ru/ Результатом раздела...

Как после серии AJAX запросов вернуть полное представление, а не частичное
Здравствуйте. Я сочиняю своего рода опросник (тест) и столкнулся с проблемой. Суть проблемы такова: 1. Формирую билет состоящий из...

NET Core. Представление для выбора связанных данных EF
Собственно проблема. Делаю от нечего делать такую фигню. Имеем два класса для DbContext EF. public class Klient { public...

30
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
09.01.2018, 11:24
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от ViterAlex Посмотреть сообщение
на настоящий момент нельзя серверными средствами вернуть частичное представление в ответ на запрос.
Вернуть-то можно, скорее
"сервер, отвечая PartialView, не может менять структуру html на клиенте" - а это какбэ очевидно.
0
Эксперт .NET
 Аватар для Usaga
14751 / 9526 / 1364
Регистрация: 21.01.2016
Сообщений: 35,945
09.01.2018, 13:01
Woldemar89, речь о том, что в Razor Pages неможно ответить частичным прtдставлением, как это работает в ASP.NET (Core) MVC. Выше даже ссылка приводилась на issue на github, где один из разрабов asp.net это прямо сказал.
1
 Аватар для sau
2875 / 2080 / 386
Регистрация: 22.07.2011
Сообщений: 7,840
19.03.2018, 23:58
Цитата Сообщение от Usaga Посмотреть сообщение
что в Razor Pages неможно ответить частичным прtдставлением
Хреново , мне Razor Pages понравился , во-первых таг.хелперы более читабельны чем хтмл.хелперы - считай привычные html атрибуты , и избавляемся от чужеродного синтаксиса (хотя таг.хелперы и в mvc можно внедрить вроде как).
Во-вторых , организация структуры кода pages гораздо ближе к модели компонентов (так мною любимой) , когда логически связанные элементы рядышком.

Что касается ajax рендеринга , то тут действительно есть зоопарк технологий , если нет встроенной возможности вернуть частичное представление в razor pages , приходится заниматься рендерингом на стороне клиента , и естественно в сложных представлениях рендеринг совсем не хочется делать нативным js , но если взять тот же angular 2 - то он хочет подмять под себя рендеринг всей страницы от корня - что не всегда удобно. (а точнее совсем не удобно , если в основном страница строится серверным рендерингом , и нужно обновлять только кусочек - например компоненту таблицы)

В общем , все время вспоминаю про старые добрые веб.формы ) - в которых как то удачно все эти вопросы решены.
0
Эксперт .NET
 Аватар для Usaga
14751 / 9526 / 1364
Регистрация: 21.01.2016
Сообщений: 35,945
20.03.2018, 04:22
sau, таг-хелперы - фишка самого шаблонизатора (разора), так что в MVC оно доступно на полную катушку.

Цитата Сообщение от sau Посмотреть сообщение
но если взять тот же angular 2 - то он хочет подмять под себя рендеринг всей страницы от корня - что не всегда удобно. (а точнее совсем не удобно , если в основном страница строится серверным рендерингом , и нужно обновлять только кусочек - например компоненту таблицы)
Ангуляр не запрещает получать шаблоны компонентов по URL-у от сервера, который шаблон этот может нарисовать тем же разором (мы на работе так и поступили со своим старым приложением, когда начали внедрять ангуляр).

Цитата Сообщение от sau Посмотреть сообщение
В общем , все время вспоминаю про старые добрые веб.формы ) - в которых как то удачно все эти вопросы решены.
Вебформс - технология сильно оторванная от реалий веба (как и задумывалось), что сейчас уже сильно неудобно. Это в начале 2000-х оно канало, когда веб был деревянно-табличным. А сейчас...
1
 Аватар для sau
2875 / 2080 / 386
Регистрация: 22.07.2011
Сообщений: 7,840
20.03.2018, 12:43
Ангуляр не запрещает получать шаблоны компонентов по URL-у от сервера, который шаблон этот может нарисовать тем же разором (мы на работе так и поступили со своим старым приложением, когда начали внедрять ангуляр).
в первой версии да , во второй перемудрили - шаблон там html-лный и упаковывается на этапе сборки в js. веб.паком. , или нет ?
0
Эксперт .NET
 Аватар для Usaga
14751 / 9526 / 1364
Регистрация: 21.01.2016
Сообщений: 35,945
20.03.2018, 12:46
sau, ничего там не перемудрили. Вы или template: require делаете с упаковкой шаблона в бандл, или templateUrl: 'url' для запроса в рантайме. А откуда запрашиваете - уже не важно (что удобно).
0
 Аватар для sau
2875 / 2080 / 386
Регистрация: 22.07.2011
Сообщений: 7,840
20.03.2018, 12:51
Цитата Сообщение от Usaga Посмотреть сообщение
sau, ничего там не перемудрили. Вы или template: require делаете с упаковкой шаблона в бандл, или templateUrl: 'url' для запроса в рантайме
окей . попробую. , с 2-м только начал знакомиться.

А что касательно root элемента (bootstrapModule регистрация) , есть элегантные способы создать множество root элементов на странице (где root по сути отдельный компонент решающий маленькую задачу) и обеспечить их взаимодействие ?
- в первом можно было навесить атрибут app на существующий элемент , который обеспечивал связь между всеми дочерними контролами , но при этом не подчищал верстку страницы.
0
Эксперт .NET
 Аватар для Usaga
14751 / 9526 / 1364
Регистрация: 21.01.2016
Сообщений: 35,945
20.03.2018, 12:53
Цитата Сообщение от sau Посмотреть сообщение
попробую. , с 2-м только начал знакомиться.
Уже пятая версия в ходу)

Цитата Сообщение от sau Посмотреть сообщение
А что касательно root элемента , есть элегантные способы создать множество root элементов на странице (где root по сути отдельный компонент решающий маленькую задачу) и обеспечить их взаимодействие ?
- в первом можно было навесить атрибут app на существующий элемент , который обеспечивал связь между всеми дочерними контролами , но при этом не подчищал верстку страницы.
Не уверен, что такое стоит делать с ангуляром. Лучше что-то маленькое для этого испльзовать, типа KnockoutJS или VueJS.
0
 Аватар для sau
2875 / 2080 / 386
Регистрация: 22.07.2011
Сообщений: 7,840
20.03.2018, 13:19
Цитата Сообщение от Usaga Посмотреть сообщение
Не уверен, что такое стоит делать с ангуляром. Лучше что-то маленькое для этого испльзовать, типа KnockoutJS или VueJS.
Да я смотрел их , не нравится реализованная модель , мне нужен MVVM в компонентах , под компонентом понимается кусочек html и закрепленный за ним класс обработчик , плюс платформа должна обеспечивать взаимодействие компонентов - двухсторонние привязки , событийная модель и всякие инжектабл сервисы (аля http client) - дабы не прикручивать всякие jquery. У ангуляра с этим все в порядке , но есть некоторые архитектурные требования - которые меня не радуют. Нарпмер , даже если извернуться и зарегестрировать несколько root элементов , они не умеют считывать атрибуты инициализации т.к для корневых элементов ангуляром такой механизм не предусмотрен ((( , не говоря уже о механизме их взаимодействия.
- по сути навязывают рендеринг всей страницы через движок ангуляра , чего не было в первой версии. , а в первой версии с архитектурой компонентов не все гладко. В общем , как дальше жить не знаю ).

П.С 5-я там по сути это 2.5 , 2-м я называю сборку основанную на компонентах. , там они уже в мелочах ее допиливают под разными версиями.

Добавлено через 10 минут
П.С Может еще раз к Vue присмотрюсь , если с ангуляром подружиться не выйдет , но уже начальное определение вида new Vue({ Data:.... Methods:... }) настораживает процедурным подходом , а если у меня ряд классов где и методы и свойства , я их должен магическим образом упаковать в этот сетап , вычленить методы отдельно , нужно курить в общем.
0
Эксперт .NET
 Аватар для Usaga
14751 / 9526 / 1364
Регистрация: 21.01.2016
Сообщений: 35,945
20.03.2018, 13:39
KnockoutJS вполне себе умеет в компоненты и взаимодействие между ними, разве что сервисов и DI впониме нету. Тут уж вам решать, маленькие и простые нокауты\вуи или комбайн ангулярный со своими требованиями и хотелками.
0
 Аватар для sau
2875 / 2080 / 386
Регистрация: 22.07.2011
Сообщений: 7,840
20.03.2018, 14:06
А все почему , потому что мелкософт в какой то момент сказала - пользуйтесь разработками сообщества . а у сообщества нет единого мнения на счет того как нужно разрабатывать веб.пирложения - половина решений понятия не имеет про ООП и прочих продвинутых принципах в серверной разработке , отсюда весь геморрой в попытках скрестить бульдога с носорогом , а вот в веб.формах есть полный продуманный пакет от клиента до сервера в одном фреймворке. То что там устарело можно не использовать (хотя я не вижу где и чего там устарело) , удручает лишь то - что хайп вокруг новшеств мешает использовать. , заказчики хотят все новое и "продвинутое"/

П.С Присмотрелся к компонентам в Vue , похоже то что нужно , ангуляр идет лесом.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.03.2018, 14:06

Как добавить частичное представление на мастер страницу?
Есть файл, _Layout.cshtml Есть файл Create.cshtml, который добавляет пользователя в базу данных @model ProjectOne.Models.User @{ ...

Как передать собственную модель в частичное представление?
Добрый день, только начинаю разбираться с mvc, помогите, пожалуйста с такой задачей. На основной странице есть 2 поля: вопрос...

Как добавить частичное представление в дочерние элементы
в общем не знаю как добавить частичное представление в jquery ajax в дочернии элементы то есть если делаю так то срабатывает ...

Как корректно вынести часть функционала в частичное представление?
У меня есть представление (View) и соответствующая ViewModel под него. У модели есть поле Status и на странице этот статус можно менять. ...

Частичное представление
Добрый день. Разрабатываю весьма серьезный проект, с большой посещаемостью. Чтобы уменьшить нагрузку на сервер, на главной странице хочу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru