Razor.Parse ошибка при разборе ссылки googlemap - PullRequest
0 голосов
/ 02 июля 2018

Сценарий

В моем приложении я анализирую текст, ссылки и теги на HTML, используя Razor.Parse<>().

string Razor.Parse<TEmail>(string razorTemplate, TEmail model) where TEmail : BaseEmail

Я использую '@' для анализа данных из model. Я также разбираю веб-ссылки. Эта функция работает нормально, пока я не проанализирую Google Map ссылки, например

Задача https://www.google.com/maps/place/New+York,+NY,+USA/@40.6974034,-74.1197634,11z/data=!3m1!4b1!4m5!3m4!1s0x89c24fa5d33f083b:0xc80b8f06e177fe62!8m2!3d40.7127753!4d-74.0059728 Ссылка включает в себя « @ ». Итак, я получаю ошибку:

RazorEngine.Templating.TemplateParsingException: '"40.6974034" is not valid at the start of a code block.  Only identifiers, keywords, comments, "(" and "{" are valid.'

Моя попытка

Я пытаюсь разобрать html с помощью dobule @@ https://www.google.com/maps/place/New+York,+NY,+USA/@@40.6974034,-74.1197634,11z/data=!3m1!4b1!4m5!3m4!1s0x89c24fa5d33f083b:0xc80b8f06e177fe62!8m2!3d40.7127753!4d-74.0059728 Но я получаю ошибку:

RazorEngine.Templating.TemplateParsingException: '"@" is not valid at the start of a code block.  Only identifiers, keywords, comments, "(" and "{" are valid.'

Есть идеи, что я могу сделать? Спасибо

1 Ответ

0 голосов
/ 02 июля 2018

Это потому, что вы пытаетесь передать что-то недопустимое. когда вы используете ключевое слово «@», вы не можете передавать значения, вы должны передать идентификатор, ключевое слово, комментарий, «(», «{». Ключевое слово «@» отмечает начало блока кода, например:

string value = Razor.Parse("@UserSession.NumberOfPeople")

Выше будет работать, но это:

string value = Razor.Parse("@http://www.something.com")

не будет работать, это неверно.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...