Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
4 / 4 / 0
Регистрация: 01.11.2013
Сообщений: 216

Отобразить PartialView только на Layuot

16.05.2023, 22:55. Показов 1565. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Есть контроллер:

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
    public class AccountController : Controller
    {
        private readonly UserManager<IdentityUser> _userManager;
        private readonly SignInManager<IdentityUser> _signInManager;
        private readonly RoleManager<IdentityRole> _roleManager;
 
        public AccountController(UserManager<IdentityUser> userManager, 
                                 SignInManager<IdentityUser> signInManager,
                                 RoleManager<IdentityRole> roleManager)
        {
            _userManager = userManager;
            _signInManager = signInManager;
            _roleManager = roleManager;
        }
        [HttpGet]
        public IActionResult Register()
        {
            return View();
        }
 
        [HttpGet]
        public IActionResult Login()
        {
            return View(new LoginViewModel());
        }
 
        public IActionResult _Layout()
        {
            return View("~/Views/Account/_PartialAccount.cshtml", new AccountViewModel());
        }
     }
Метод _Layout() возвращает частичное представление. Это частичное представление используется в Layout.cshtml, но также оно попадает на страницу ~/Account/_Layout. В итоге форма на экране в двух местах.

Могу я сделать что-то, чтобы оно попадало только в layout?

Вообще, я делаю форму для входа на сайт и решил расположить ее в Layout. При нажатии на кнопку "Войти" на Layout должна отобразиться форма для логина/пароля. Если честно, я не очень понимаю, как правильно взаимодействовать с layout. Под нее нужен отдельный контроллер и модель?

Добавлено через 20 минут
Я немного уточнил описание:

Вообще, я делаю частичное представление для входа на сайт и решил расположить его в Layout. Это частичное представление может отображать либо кнопку "Войти", либо при нажатии кнопки "Войти" может отобразить форму для входа. Это сделано через еще два частичных представления, которые отображаются в первом в зависимости от состояния модели (либо одно, либо другое).

Когда я запускаю приложение, моя модель еще не создана. Если я создам ее в контроллере Home (для начала, мне кажется, это неправильно, что модель для контроллера Account вдруг попала в контроллер Home, с другой стороны - а куда я денусь, Layout нужно же на Index как-то отображать), и передам в действие Index, при вызове Index каждый раз будет создаваться новая модель - следить за состоянием не получается. Можно сделать свойство контроллера - но не слишком ли жирно для отображения формы по кнопке создавать свойство целое?

Добавлено через 7 минут
Пока изучал проблему наткнулся на термины "JavaScript", "jQuery", "Клиентская сторона", только не это, пожалуйста...

Добавлено через 21 минуту
Извините за графоманию, но такое ощущение, что для работы с layout придется создать целый сервис, который будет за ней присматривать, ведь она отображается на всех страницах, а я хочу, чтобы ее содердимое не менялось при переходе со страницы на страницу.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.05.2023, 22:55
Ответы с готовыми решениями:

Как отобразить на _Layout.cshtml строготипизированое PartialView
Как отобразить на Главном шаблоне страницы частичное представдение, при этом чтобы оно обрабатывалось контроллером?Например: есть...

Добавить Toolbar без layuot на canvas
Всем добра. Ребята, хочу добавить toolbar, его рекомендуют на замену actionbar. Сколько пересмотрел примеров добавления везде...

Отобразить только определенные значения
Доброго времени суток всем! Есть задача которую я не могу реализовать до конца, а спросить не у кого. Имеется форма в которой всего 3...

10
HF
 Аватар для HF
1303 / 882 / 199
Регистрация: 09.09.2011
Сообщений: 2,591
Записей в блоге: 2
17.05.2023, 01:30
Цитата Сообщение от Vanka03 Посмотреть сообщение
но такое ощущение, что для работы с layout придется создать целый сервис, который будет за ней присматривать, ведь она отображается на всех страницах, а я хочу, чтобы ее содердимое не менялось при переходе со страницы на страницу.
Тогда это уже перестаёт быть layout. Выделяйте для мастер-страницы статичный контент (хидер, тело, что-то ещё) , а с остальным уже делайте что хотите.
1
4 / 4 / 0
Регистрация: 01.11.2013
Сообщений: 216
17.05.2023, 08:54  [ТС]
Можно немного ликбеза? Из Вашего ответа я понял, что:

1. Поведение, которое я хочу получить (чтобы можно было переходить на разные страницы, но наверху всегда отображалось одно и то же, т.е. чтобы мастер-страницы имела какое-то состояние и оно где-то хранилось), противоречит назначению мастер-страницы. Но тогда не совсем понятно, в чем ее назначение?

2.
Цитата Сообщение от HF Посмотреть сообщение
Выделяйте для мастер-страницы статичный контент
Уточните, пожалуйста, где выделять? В остальных страницах? В каком виде тогда будет существовать Layout? В виде частичного представления? Или наоборот, мастер страница будет существовать в в иде представления, а все остальные страницы в виде частичных представлений будут отображаться на нем (по дефолту, вроде как организовано близкое к этому поведение).
0
403 / 265 / 69
Регистрация: 12.04.2020
Сообщений: 1,404
20.05.2023, 21:34
Цитата Сообщение от Vanka03 Посмотреть сообщение
Можно немного ликбеза?
не занимайтесь ерундой
ибо то что вы пытаетесь понять умерло и никому нинужно
0
4 / 4 / 0
Регистрация: 01.11.2013
Сообщений: 216
27.05.2023, 14:58  [ТС]
То, что умерло, может стать основой для чего-нибудь нормального.
Цитата Сообщение от Dr9vik Посмотреть сообщение
ибо то что вы пытаетесь понять умерло и никому нинужно
Ну тогда дайте ликбез Вы) Что сейчас нужно? Я изучаю Web-разработку на C# с использование вот этой RoadMap: https://github.com/MoienTajik/... oadmap.png , а там как раз есть MVC, вот я и решил потренироваться и сделать MVC-проект какой-нибудь.
0
403 / 265 / 69
Регистрация: 12.04.2020
Сообщений: 1,404
27.05.2023, 15:31
Цитата Сообщение от Vanka03 Посмотреть сообщение
а там как раз есть MVC
есть бекенд, есть фронтенд
то чем щас вы занимаетесь и то и другое одновременно
и фронтедом у вас выступает Разор - он как раз и умер
формально вам нужно перейти в беке на апи
https://learn.microsoft.com/en... ual-studio
а фронт учить что нибудь другое
если ангуляр и реакт сложны, Blazor посмотрите, более менее что то актуальное
1
HF
 Аватар для HF
1303 / 882 / 199
Регистрация: 09.09.2011
Сообщений: 2,591
Записей в блоге: 2
27.05.2023, 19:26
Цитата Сообщение от Vanka03 Посмотреть сообщение
противоречит назначению мастер-страницы. Но тогда не совсем понятно, в чем ее назначение?
Назначение мастер-страницы - статичный шаблон, внутри которого контейнеры, куда мы и будем внедрять вьюшки. И обычно этот мастер: html основа, head с набором статичных ссылок и настроек, body с контейнером основной вьюшки, scripts контейнер для скриптов. В свою очередь, наполняются body и scripts в наших вьюшках. Они же и внедряются.
Исходя из этого и рекомендация - мастер-страница - самый основной шаблон сайт. А если у вас уже там куча вставок, то шаблон или становится перегруженым, или вставки ваши в каких-то ситуациях начнут конфликтовать.
Например, есть страница ошибок. На ней не нужно отображать менюшек, информации по логину и т.п. рабочей информации. А если у вас в мастер-странице внедрено меню и ФИО текущего пользователя, то в мастер странице появится логика: если мы в ошибке (или на странице эррор, или ещё какой-то флаг), то не отображаем меню. И так в ХХ местах. Это уже не мастер-шаблон.
Этот пример лучше понятен?

Цитата Сообщение от Vanka03 Посмотреть сообщение
Ну тогда дайте ликбез Вы) Что сейчас нужно? Я изучаю Web-разработку на C# с использование вот этой RoadMap: https://github.com/MoienTajik/... oadmap.png , а там как раз есть MVC, вот я и решил потренироваться и сделать MVC-проект какой-нибудь.
Этот роадмап - клёво, но мне кажется что совершенно не нужно в данном разговоре. Вам нужен MVC, значит о нём и говорим. В роадмапе нет плана по изучению MVC. Как вы видите там пункты: Razor, MVC и т.п. Это только общие знания достаточные для Этого роадмапа.
Плюс к этому - MVC - это архитектурный подход, и есть MVC в рамках ASP.NET. Мне кажется что для этого роадмапа достаточно понимания о разбивке проекта на M.V.C.
А ваши вопросы это уже более продвинутые для этого роадмапа. Вы точно хотите глубже копать? Если да, то тогда стоит и с основ начать и простых проектов, тогда понимание быстро и придёт.
1
4 / 4 / 0
Регистрация: 01.11.2013
Сообщений: 216
29.05.2023, 19:17  [ТС]
Хм, просто я думал, что MVC - один из краеугольных камней Web-разработки, в связи этим решил уделить ему особое внимание. Ну и подумал - почему бы не сделать какой-нибудь сайт с простеньким функционалом и CRUD-операциями. Но, как обычно, хочется навернуть всяких фишек, что и завело меня туда, где я есть.

Насчет основ - я прочитал две темы на Metanit (ASP и ASP MVC), после чего решил попрактиковаться. Роадмап, как Вы правильно заметили, не содержит плана изучения MVC, тут я уже полагался на другие источники.
0
HF
 Аватар для HF
1303 / 882 / 199
Регистрация: 09.09.2011
Сообщений: 2,591
Записей в блоге: 2
29.05.2023, 19:27
Цитата Сообщение от Vanka03 Посмотреть сообщение
Хм, просто я думал, что MVC - один из краеугольных камней Web-разработки, в связи этим решил уделить ему особое внимание. Ну и подумал - почему бы не сделать какой-нибудь сайт с простеньким функционалом и CRUD-операциями. Но, как обычно, хочется навернуть всяких фишек, что и завело меня туда, где я есть.
Ну дак почему бы и нет. И да, MVC - краеугольный. и треугольный и вообще камень разработки. И если вы решили сделать простенький функционал, то делайте по шаблонному проекту который и предоставляется студией и в документациях. Вам этого должно хватить по полной программе. И в нём есть и мастер-шаблон с меню и текущим логином и КРУД.
Вы б почитали лучше различие (плюсы, минусы) ASP.NET WebForms от ASP.NET MVC. Тогда понятно будет - почему это стало "модно, молодёжно". И сразу станет понятно о чём эти буквы.
0
 Аватар для IamRain
4693 / 2701 / 734
Регистрация: 02.08.2011
Сообщений: 7,227
29.05.2023, 19:39
Цитата Сообщение от Vanka03 Посмотреть сообщение
Хм, просто я думал, что MVC - один из краеугольных камней Web-разработки,
Так и есть, поэтому не надо слушать того оболтуса сверху.

Цитата Сообщение от Vanka03 Посмотреть сообщение
, что для работы с layout придется создать целый сервис, который будет за ней присматривать,
Примерно так и надо делать, имхо. Примеры, которые я видел, для вашей хотелки - это устанавливать некоторую модель во ViewData и в Layout-e проверять ее.

Чтобы гарантировать наличие этой модели, создаете какой-то сервис, у которого будет доступ к ViewData контроллера.
Ну и внедрить его в ActionFilter-ы .
1
4 / 4 / 0
Регистрация: 01.11.2013
Сообщений: 216
29.05.2023, 20:46  [ТС]
Цитата Сообщение от HF Посмотреть сообщение
И если вы решили сделать простенький функционал, то делайте по шаблонному проекту
А я конечно так и делал. Я создал шаблонный MVC-проект, мне не понравилось, как он выглядит, я перерисовал страницы. Потом я захотел добавить авторизацию, но заново создавать проект было лень, + я с опаской отношусь к тому, чего не понимаю (по крайней мере, пока не привык к этому), поэтому я на Metanit нашел способ прикрутить Identity к уже существующему проекту. После чего я подумал: "На всех нормальных сайтах форма для входа вверху справа всегда находится, а ты как лох. Ты же прочитал целых 2 раздела на metanit про MVC, давай, придумай что-нибудь". Но сходу придумать не получилось, и вот я здесь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.05.2023, 20:46
Помогаю со студенческими работами здесь

Отобразить только связанные строки
Всем привет,подскажите пожалуйста как отобразить только связанные строки? на форме Adotable, datasource и dbgrid Из за отображение...

Отобразить только нужные табы в PageControl
Всем привет! Столкнулся с проблемой на форме присутсвует PageControl (назовем PgC) на нем не сколько Листов (TS1,Ts2,Ts3,...,Ts); ...

Отобразить в ComboBox только часть строки
Приветствую! Нужно добавить элементы в КомбоБокс в виде &quot;&lt;Имя&gt; &lt;значение&gt;&quot;. Нужно, чтобы отображалось на форме только Имя, а Значение...

Отобразить только мои запросы во вью
Добрый день! Имеется база с запросами от пользователей. Каким образом можно реализовать отбор запросов во вью, чтобы пользователь мог...

Как отобразить только определённую область
Создаю коорд. сис. с помощью gluOrtho2D(0,32*40,32*10,0); Потом рисую объекты во всю длину по оси X и в итоге всё это умещается в окно. А...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru