powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / как провалидировать модель в scriban?
12 сообщений из 12, страница 1 из 1
как провалидировать модель в scriban?
    #39854504
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как можно было б провалидировать опечатку в модели используя scriban ?
есть вроде как поле HasErrors но оно всегда false. как оно работает? если кто то использует направьте меня.

Код: c#
1.
2.
3.
4.
var template = Template.Parse("Hello {{ngame}}!");
var result = template.Render(new { Name = "World" }); // => "Hello World!" 
Console.WriteLine(template.HasErrors); ///я почему то ожидал что тут увижу true
Console.WriteLine(result);
...
Рейтинг: 0 / 0
как провалидировать модель в scriban?
    #39854511
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

https://github.com/lunet-io/scriban/blob/master/src/Scriban.Tests/TestParser.cs

судя по тестам должно работать, прогони тесты :)
...
Рейтинг: 0 / 0
как провалидировать модель в scriban?
    #39854538
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
ну там ни одного теста на опечатку модели нету. только на кривость синтаксиса
...
Рейтинг: 0 / 0
как провалидировать модель в scriban?
    #39854616
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

ну судя по логике, template это скомпилированный шаблон, который понятия не имеет о модели, которую ты в неё суёшь. поэтому там нет и не будет HasErrors, ты же модель только в Render передаёшь.
...
Рейтинг: 0 / 0
как провалидировать модель в scriban?
    #39854618
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

чтобы решить твою задачу, нужно после изменения темплейта, прогонять его через тестовую модель.
такой селф-тестер.
...
Рейтинг: 0 / 0
как провалидировать модель в scriban?
    #39854636
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostthandmadeFromRu,

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

твой Razor тоже не будет падать, если ты модель укажешь dynamic :)
а для скрибана она всегда dynamic

поэтому на этапе сохранения шаблона тебе нужно сделать Render на тестовой модели и можешь сказать о результатах пользователю.
...
Рейтинг: 0 / 0
как провалидировать модель в scriban?
    #39854680
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
твой Razor тоже не будет падать, если ты модель укажешь dynamic :)
а для скрибана она всегда dynamic

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

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
            var template = Template.Parse("Hello {{neame}}!");

            try
            {
                var scriptObject = new ScriptObject();
                scriptObject.Import(new { Name = "World" });
                var templateContext = new TemplateContext(scriptObject);

                templateContext.StrictVariables = true; // ВОТ

                var result = template.Render(templateContext);
                Console.WriteLine(result);
            }
            catch (ScriptRuntimeException ex)
            {
                var start = ex.Span.Start;
                Console.WriteLine($"Фигня какая-то на {start.Line + 1} строке и {start.Column + 1} позиции.");
            }
...
Рейтинг: 0 / 0
как провалидировать модель в scriban?
    #39854787
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

в сообщении там детальная инфа, а ты еще можешь выдрать кусок проблемного текста из шаблона.
...
Рейтинг: 0 / 0
как провалидировать модель в scriban?
    #39854883
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

оо чел спасибо. оно толком то не гуглится по этой библиотеке) в редми есть сностка которую я пропустил изза кучи инфы
...
Рейтинг: 0 / 0
как провалидировать модель в scriban?
    #39854891
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

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


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