Я знаю, что, вероятно, это будет что-то очень простое, и это похоже на «ошибку», которую я еще не понял; однако мне не удается избежать символа @
в следующем URL-адресе.
<a href="https://www.google.co.uk/maps/place/XXXXXXXXXXXXXXXX/@55.000000,-1.000000,17z/data=!3m1!4b1!4m2!3m1!1s0x487e736c74d13649:0xe560f3b38693aec3">View on Google Maps</a>
Я уже пытался избежать этого с помощью второго @
т.е.
<a href="https://www.google.co.uk/maps/place/XXXXXXXXXXXXXXXX/@@55.000000,-1.000000,17z/data=!3m1!4b1!4m2!3m1!1s0x487e736c74d13649:0xe560f3b38693aec3">View on Google Maps</a>
Тем не менее, это дает следующий YSOD
Что мне не хватает?
5 ответов
Попробуйте использовать @
вместо фактического @
<a href="https://www.google.co.uk/maps/place/XXXXXXXXXXXXXXXX/@55.000000,-1.000000,17z/data=!3m1!4b1!4m2!3m1!1s0x487e736c74d13649:0xe560f3b38693aec3">View on Google Maps</a>
Интересно, почему никто не предлагает использовать закодированный в URL-адресе символ %40
для @
?
<a href="https://www.google.co.uk/maps/place/XXXXXXXXXXXXXXXX/%4055.000000,-1.000000,17z/data=!3m1!4b1!4m2!3m1!1s0x487e736c74d13649:0xe560f3b38693aec3">View on Google Maps</a>
Для меня это работает.
http://meyerweb.com/eric/tools/dencoder/
Просто другой способ:
<a href="https://www.google.co.uk/maps/place/XXXXXXXXXXXXXXXX/@("@55.000000,-1.000000"),17z/data=!3m1!4b1!4m2!3m1!1s0x487e736c74d13649:0xe560f3b38693aec3">View on Google Maps</a>
Или
<a href="https://www.google.co.uk/maps/place/XXXXXXXXXXXXXXXX/@("@")55.000000,-1.000000,17z/data=!3m1!4b1!4m2!3m1!1s0x487e736c74d13649:0xe560f3b38693aec3">View on Google Maps</a>
Я нашел другой (может в некоторых случаях лучший) способ избежать @
- символов в шаблонах бритвы.
В моем случае использования у меня есть партиал с активами, которые следует заменить задачей usemin grunt-task . При ссылке на пакет npm с ограниченной областью видимости внутри строки пути есть @
.
@using Foo.Bar.Helpers
@{
var somescope = "@somescope";
}
@Html.RegisterAssetBlock(
content: @<text>
<!-- build:js /assets/js/bundle.js -->
<script src="/node_modules/@somescope/somepackage/dist/main.js" type="text/javascript"></script>
<!--endbuild-->
</text>
)
Таким образом, в каждом случае существует правильная строка ( время компиляции клиента и время компиляции сервера ).
В вашем случае это будет означать следующее:
@using Foo.Bar.Helpers
@{
var location = "@55.000000,-1.000000";
}
<a href="https://www.google.co.uk/maps/place/XXXXXXXXXXXXXXXX/@(location),17z/data=!3m1!4b1!4m2!3m1!1s0x487e736c74d13649:0xe560f3b38693aec3">View on Google Maps</a>
Самое простое решение этой проблемы — использовать @@
вместо @
.
Именно так MS рекомендует экранировать один @
.
Похожие вопросы
Связанные вопросы
Новые вопросы
asp.net-mvc
ASP.NET MVC Framework - это платформа и инструмент веб-приложений с открытым исходным кодом, которые реализуют версию шаблона модель-представление-контроллер (MVC), адаптированную к веб-приложениям и построенную на основе технологии ASP.NET.