Страницы

Поиск по вопросам

среда, 22 января 2020 г.

.net core mvc 6 (razor) не английские символы автоматом переводятся в Unicode Hex Character

#razor #net_core #aspnet_core_mvc


В .net core в представлениях (Razor) теперь все НЕ английские символы автоматически
конвертируются в соотвествующий хекс код. 

и теперь весь русский текст, который берётся из модели, или из переменных и пр. будут
выглядеть как: 

Мы не #x441;мо ...


И чтоб получить нормальный текст на русском нужно её значение выводить используя
Html.Raw()

тоесть если я в контроллере присвою переменной 

string txt="текст на русском";


и в представлении напишу

Смотрите это: @txt


то в html разметке я увижу:

смотрите это:  Мыне#x441;можем 


Если же использовать стандартные структуры типа 




то из модели весь текст с валидацией на русском автоматом преобразуется и получим  




конечно для конечного пользователя ничего не изменится и на страничке он видит правильный
русский текст, однако сам html заметно растет.

Как "обьяснить" .net core, что символы латинские "не опасны" и не нужно их заменять
при выводе вместе с символами "&<> и т.п. ?

В общем сделать так как было раньше...
    


Ответы

Ответ 1



в файле Startup.cs в public void ConfigureServices(IServiceCollection services) { .... //Чтобы кирилические символы не переводились в соответствующий Unicode Hex Character Code services.Configure(options => { options.TextEncoderSettings = new TextEncoderSettings(UnicodeRanges.All); }); }

Комментариев нет:

Отправить комментарий