#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); }); }
Комментариев нет:
Отправить комментарий