Problema de acentuação no retorno de um CSHtml que é usado com Javacript
Em algumas situações será necessário tratar caso a caso a acentuação de textos no CSHTML.
Para isso utilize a função nativa do .NET (C#):
Html.Raw(...)
Exemplo de uso, imaginamos que toda vez que o usuário entrar em um formulário a descrição do produto seja apresentado em um alert em javascript:
Para isso, criamos um cshtml, e adicionamos no formulário com o seguinte código.
@{
/*
* FUNÇÃO EM C# PARA BUSCAR A DESCRIÇÃO NO BANCO DE DADOS
*/
var id_produto = Model.FormularioCamposPreenchidos["produto"];
var descricao = "";
if(id_produto != null && id_produto.ToString() != string.Empty){
var query = @"select isnull(p.descricao,'') descricao from x_tbl_produtos p where p.deletado = 0 and p.id = '"+id_produto+"' ";
var dt = await PageContext.GetDataTableAsync(query);
if(dt.Rows.Count > 0)
{
var dr = dt.Rows[0];
descricao = dr["descricao"].ToString().Replace("'","");
}
}
/*
* ABAIXO ESTÁ A FUNÇÃO EM JAVASCRIPT APRESENTAR A DESCRIÇÃO EM UM ALERT
*/
}
<script>
DOM.ready(function () {
//nesse momento eu quero apresenta um alert com a descrição do produto, para garantir que a acentuação esteja correta, utilizo Html.Raw
alert('@Html.Raw(descricao)');
});
</script>