powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Полиморфизм в разметке ?
25 сообщений из 61, страница 1 из 3
Полиморфизм в разметке ?
    #38952520
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.

Можно ли как-то применить принципы полиморфизма, для создания разметки страницы ?

Например если имеется несколько типов объектов и их нужно вывести по разному (ну пусть, к примеру, разным цветом рамки или еще что-то).
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38952532
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekПривет.

Можно ли как-то применить принципы полиморфизма, для создания разметки страницы ?

Например если имеется несколько типов объектов и их нужно вывести по разному (ну пусть, к примеру, разным цветом рамки или еще что-то).

С точки зрения Razor нельзя, так как шаблонизатор абсолютно без малейшего понятия того, что вы там себе понимаете под "полиформизмом" разметки.

Но можно "полиформизм" организовать с помощью хелперов, т.е. генерацией HTML-я кодом.
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38952536
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekПривет.

Можно ли как-то применить принципы полиморфизма, для создания разметки страницы ?

Например если имеется несколько типов объектов и их нужно вывести по разному (ну пусть, к примеру, разным цветом рамки или еще что-то).Назначить class элементу в зависимости от типа. Составить соответствующий CSS.
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38952574
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гуглинг подсказал, что можно реализовать некое подобие через частичные представления и генерацию разметки HTML в коде через Raw.
По идее работать будет, но что-то кажется намудрено. И читать потом наверное сложнее.

Это нормальная идея или не очень ?
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38952585
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы реализовали, написав свой движок на базе StringTemplate. Но нам это нужно для того, чтобы пользователи могли создавать своих "наследников" и переопределять, соответственно, нашу разметку.
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38952614
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekгуглинг подсказал, что можно реализовать некое подобие через частичные представления и генерацию разметки HTML в коде через Raw.
По идее работать будет, но что-то кажется намудрено. И читать потом наверное сложнее.

Это нормальная идея или не очень ?

Я думаю, что плохая. Лучше написать свой хелпер (генерация HTML-разметки кодом).
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38952620
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAМы реализовали, написав свой движок на базе StringTemplate. Но нам это нужно для того, чтобы пользователи могли создавать своих "наследников" и переопределять, соответственно, нашу разметку.

Про что я и говорю, конкретно вам понятен принцип реализации наследования и полиформизма именно в вашей разметке, следовательно вы написали свой движок под это дело.
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38952642
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAМы реализовали, написав свой движок на базе StringTemplate. Но нам это нужно для того, чтобы пользователи могли создавать своих "наследников" и переопределять, соответственно, нашу разметку.

Про что я и говорю, конкретно вам понятен принцип реализации наследования и полиформизма именно в вашей разметке, следовательно вы написали свой движок под это дело.Да принцип-то простой: в этой теме логин-бокс должен выглядеть так, в этой - сяк. А тут пользователь хочет по своему.
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38952675
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAДа принцип-то простой: в этой теме логин-бокс должен выглядеть так, в этой - сяк. А тут пользователь хочет по своему.

Я говорю про принцип наследования, а не про переопределение разметки.

Например:

class BaseText --> <p>@Model.Text</p>

class TextWithImage --> ??? до, после или вместо, чего куда пихать? ))
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38952689
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAДа принцип-то простой: в этой теме логин-бокс должен выглядеть так, в этой - сяк. А тут пользователь хочет по своему.

Я говорю про принцип наследования, а не про переопределение разметки.А извини, забыл написать, что если не переопределять ничего в компоненте, то он будет выглядеть также, как и в родительской теме.
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38952994
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekПривет.

Можно ли как-то применить принципы полиморфизма, для создания разметки страницы ?

Например если имеется несколько типов объектов и их нужно вывести по разному (ну пусть, к примеру, разным цветом рамки или еще что-то).
А что вообще понимается под полиморфизмом и еще принципами?
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38953019
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ,

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

В моем примере, у меня во вьюхе нужно рисовать 2 почти одинаковых элементов, отличающихся лишь одним свойством. Причем не значением свойства, а именно типом. Во вьюху передается модель базового класса, от которого и порождены эти 2 класса.
Соответственно не хочется, чтобы вьюшка пестрила case'ами, храня логику отрисовки разных типов элементов.
Может быть тут и частичное представление поможет, не могу пока сообразить.

В ASp.Net Mvc я пока еще нуб. Многое мне еще не ведомо, могу сильно ошибаться в предположениях.
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38953070
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek, покажите конкретный код: что за базовый класс, что за модель?
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38953116
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek,
Это наследование + полиморфизм подтипов.
MVC не вписывается в ООП, в данном случае лучше webforms.
Razor - можно считать как некоторый декларативный язык разметки.
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38953137
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВMVC не вписывается в ООП, в данном случае лучше webforms.

Это как вообще понимать? И с какого перепугу "тут" лучше вебформс?

ЕвгенийВRazor - можно считать как некоторый декларативный язык разметки.

Чиво? Razor это никакой не язык разметки. Разметкой является HTML, а Razor это движок представлений.
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38953149
Calabonga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЕвгенийВMVC не вписывается в ООП, в данном случае лучше webforms.
Razor - можно считать как некоторый декларативный язык разметки.

Бредовее идеи еще не слышал в этом месяце! Спасибо, улыбнуло!
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38953158
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Это как вообще понимать? И с какого перепугу "тут" лучше вебформс?
view, как он есть в asp.net mvc не класс, не объект, не функция и не процедура.
В вебформс же, можно сделать 2 наследника некого базового класса и они будут вести себя как хочет ТС.

hVostt
Чиво? Razor это никакой не язык разметки. Разметкой является HTML, а Razor это движок представлений.
Это полу декларативная балалайка, которая может только то что может, не может быть расширена или изменена простым способом.
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38953159
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Calabonga
Бредовее идеи еще не слышал в этом месяце! Спасибо, улыбнуло!
Поделись улыбкою своей со здешними обывателями, не таи в себе.
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38953163
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВview, как он есть в asp.net mvc не класс, не объект, не функция и не процедура.

Букварь открой для начала. View в ASP.NET MVC это класс, реализующий интерфейс IView.

ЕвгенийВЭто полу декларативная балалайка, которая может только то что может, не может быть расширена или изменена простым способом.

Несёшь какой-то бессвязный бред, какая ещё балалайка? В Razor после символа @ идёт чистый код на C#, я видал системы, где в Razor была написана практически вся логика приложения, включая работу с БД. Это конечно ахтунг, но сути не меняет.
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38953166
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ,

Более того, в Razor можно написать вот так: @Html.DisplayForModel() или @Html.DisplayFor(p => p.MyModel)

и в зависимости от типа модели Razor найдёт наиболее подходящий шаблон, поддержка наследования модели поддерживается.
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38953167
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример собственной вьюхи на основе шаблонов XSLT:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
public class XsltView : IView
{
    private readonly string _path;

    public XsltView(string path)
    {
        _path = path;
    }

    public void Render(ViewContext viewContext, TextWriter writer)
    {
        var xsltFile = viewContext.HttpContext.Server.MapPath(_path);
        var xmlData = viewContext.ViewData["data"] != null 
            ? ((XElement)viewContext.ViewData["data"]).ToString() 
            : "";

        var xmlTree = XDocument.Parse(xmlData);
        var xslt = new XslCompiledTransform();

        xslt.Load(xsltFile);
        xslt.Transform(xmlTree.CreateReader(), null, writer);
    }
}



Razor-ом тут даже не пахнет, ASP.NET MVC пофигу совершенно что там внутрях. Можно даже StringTemplate какой-нибудь заюзать (но нафиг надо)).
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38953263
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМожно даже StringTemplate какой-нибудь заюзать (но нафиг надо)).Скучаешь что-ли без меня? :)
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38953301
ProBiotekЕвгенийВ,
...
В ASp.Net Mvc я пока еще нуб . Многое мне еще не ведомо, могу сильно ошибаться в предположениях.
Ну тогда попробуй Nancy FX для начала - порог вхождения много ниже, как ступень к MVC будет. С Бритвой дружит. Самое - то для начала, ИМХО.
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38953350
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAhVosttМожно даже StringTemplate какой-нибудь заюзать (но нафиг надо)).Скучаешь что-ли без меня? :)

так есть же Razor )
...
Рейтинг: 0 / 0
Полиморфизм в разметке ?
    #38953374
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAпропущено...
Скучаешь что-ли без меня? :)

так есть же Razor )это хорошо, но...

если есть возможность использовать более подходящий для наших целей движок представления, то глупо не воспользоваться этой возможностью :)
...
Рейтинг: 0 / 0
25 сообщений из 61, страница 1 из 3
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Полиморфизм в разметке ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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