Tenho um URL que gostaria de manter em appsettings.json :
"MapLookupURL": "https://www.google.com/maps/search/?api=1&query=",
Em seguida, recupero essa string por meio de:
window.open("@(Configuration.MapLookupURL)" +
O problema é que o .NET está codificando a string (incluindo o e comercial em "&query="
), tornando tudo inútil, desde o e comercial.
Como faço para impedir que o .NET faça isso?
Por favor, tente
window.open("@(Html.Raw(_config["MapLookupURL"]))" + "Seoul");
.Aqui está o resultado do meu teste com os códigos abaixo:
Você verá que quando a página carrega, ela já converte o núcleo do asp.net disponível em js em conteúdo HTML simples. Enquanto isso, o Razor codifica automaticamente em HTML qualquer saída de string para evitar ataques de cross-site scripting (XSS). É por isso que pudemos ver
<div id="cont1">@_config["MapLookupURL"]</div>
bem (o navegador poderia mostrar as codificações diretamente), mas<script>
isso não acontece. A solução alternativa é usar@Html.Raw(_config["MapLookupURL"])
which gera a string bruta e não codificada.