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>

Back to top