170 похожих чатов

Привет всем. А может кто подсказать как правильно делать композицию

из PartialView в ASP.NET MVC 4.8?

Стоит задача сделать компонент, часть которого на разных страницах выглядит по-разному. В blazor такое легко решается через композицию (RenderFragment), где в конкретное место компонента можно подкинуть динамику в виде компонентов и похожим образом работает BeginForm/EndForm с отдельным рендером. Вот хотелось бы получить схожее поведение.

Есть идеи куда можно посмотреть?

14 ответов

7 просмотров

По правде сказать, я не совсем понял задачу.

Svyatoslav-Bychkov Автор вопроса
Nikolay Shamshurin
По правде сказать, я не совсем понял задачу.

Есть header на странице с кнопками и т.п. И на разных страницах в этот header дорисовывается кастомный контент в виде других кнопок (фильтр, поиск и т.п.). Вот хочется получить что-то типа Page1: <CustomHeader><div1/><CustomHeader/> Page2: <CustomHeader><div2></CustomHeader>

Svyatoslav Bychkov
Есть header на странице с кнопками и т.п. И на раз...

В зависимости от масштабов, если изменения в хедере масштабные, можно Layout менять, если хедер меняется частично, можно из PartialView собирать.

Svyatoslav-Bychkov Автор вопроса
Nikolay Shamshurin
В зависимости от масштабов, если изменения в хедер...

header меняется частично. Просто в PartialView мы можем передавать модель и параметры, но разметка будет в строке. Это норма в MVC или есть более читамый способ?

Svyatoslav Bychkov
header меняется частично. Просто в PartialView мы ...

Возможно я не верно понимаю, что значит разметка в строке?

Svyatoslav-Bychkov Автор вопроса
Nikolay Shamshurin
Возможно я не верно понимаю, что значит разметка в...

Грубо говоря @Html.Partial(“Header”, “<div><button/></div>”) меня немного смущает. Разметка в строке, переданная вторым параметром

Nikolay Shamshurin
Так разметка же будет в PartialView

А его уже можно встроить в существующую разметку

Svyatoslav-Bychkov Автор вопроса
Nikolay Shamshurin
А его уже можно встроить в существующую разметку

Разметка Header общая и вынесена в PartialView. Нужно добавить кастомные кнопки, которые на каждой странице разные, в какую-то часть в Header разметке. Чтобы отрисовать Header мы вызывам @Html.Partial(“Header”), где параметром передам разметку с кнопками, которую нужно внедрить. Меня конкретно смущает, что мы передаем разметку кнопок в виде строки. А что если я захочу встроить PartialView в PartialView? Есть ли способ как-то нормально передать разметку, которую нужно внедрить в разметку Header? Примеры я описывал выше

Svyatoslav Bychkov
Разметка Header общая и вынесена в PartialView. Ну...

Передавать разметку не нужно, если структура хедера не меняется, нужно просто создать PartialView c разной разметкой и комбинировать их. Вот, например PartialView поиска, если нужно отобразить его иначе, обычно просто создают новое, с новой разметкой. Либо динамически меняют на фронте при помощи JS.

Svyatoslav-Bychkov Автор вопроса
Nikolay Shamshurin
screenshot Передавать разметку не нужно, если структура хедер...

Немного не так: структура хедера должна поменяться как раз за счет добавления кнопок. CustomHeader.csthml <header class=“header”> <nav>…</nav> <h5>@Model.Title</h5> <div class=“buttons”>{dynamic content here}</div> </header> Page1: @Html.Partial(“CustomHeader”, “<div><button class=“search”/></div>”) Page2: @Html.Partial(“CustomHeader”, “<div><button class=“filter”/></div>”)

Svyatoslav-Bychkov Автор вопроса
Svyatoslav Bychkov
Немного не так: структура хедера должна поменяться...

Соответственно в этом примере в div.buttons мы должны подменять контент внутри из родительской view

Svyatoslav Bychkov
Немного не так: структура хедера должна поменяться...

А что мешает сделать так, например? CustomHeader.csthml <header class=“header”> <nav>…</nav> <h5>@Model.Title</h5> <div>@Html.Partial(“Dunamic”, ...) </div> </header> Только, вместо основного PartialView сделать, Layout и пихать в его готовую разметку элементы. Например классический пример динамического отображения логина, текущего пользователя и поисковой строки в навбаре. Навбар один и тот же, но выглядит иначе на разных страницах, либо в зависимости от того залогинен юзверь или нет.

Svyatoslav-Bychkov Автор вопроса
Nikolay Shamshurin
А что мешает сделать так, например? CustomHeader....

Ок, спасибо. Появились идеи для теста

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта