Usuário com melhor resposta
"Meus paragrafos somem"

Pergunta
-
Olá pessoas.
Sou novo no mundo .net e talvez essa minha duvida seja idiota, simples e engraçada. Mas preciso resolver esse problema o mais breve possível. Conto com a ajuda de vocês.Tenho um projeto usando asp.net mvc 2 c#
Meu acesso a dados é utilizando LinqToSQltenho uma tabela no banco chamada POST e nessa tabela tenho um campo CORPO onde eu salvo um html.
Consumo o banco no meu controler. rederizo a view. mas na hora de mostrar o conteudo do campo CORPO, surge o problema. Os paragrafos somem. Todo o texto aparece, imagens aparecem mas as tags <p> somem fazendo com que meu texto fique todo junto.Se alguém tiver uma ideia do que pode estar acontecendo. por favor, me ajudem! kkkk
Respostas
-
Foi justamente o que eu fiz e verifiquei que ao invez de retornar as tag P e BR estava retornando "\r\n" então fiz o seguinteProblema Resolvido!
public static string TratarParagrafos(this string corpo) { var partes = corpo.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); var corpoTratado = new StringBuilder(); foreach (var parte in partes) { if (parte.StartsWith("<")) { corpoTratado.Append(parte); continue; } corpoTratado.Append("<p>" + parte + "</p>"); } return corpoTratado.ToString(); }
- Sugerido como Resposta Murilo Amaru Gomes terça-feira, 3 de agosto de 2010 18:40
- Marcado como Resposta Guilherme Vinicius quinta-feira, 5 de agosto de 2010 15:22
Todas as Respostas
-
-
Ai fugiria um pouco do conceito de MVC
- Editado Guilherme Vinicius terça-feira, 3 de agosto de 2010 15:31
-
-
Guilherme o problema deve ser que você está usando o HTML.Encode, e ele remove a formatação HTML do texto.
Procure usar somente <%= Model.Corpo %>
Contato:albertim_brasil@hotmail.com - Se ajudei, marca como útil.
Twitter: Me siga!!
Blog:http://dotnettime.spaces.live.com/ -
-
estou passando o meu texto em um viewdata
(na view)
<%= ViewData["corpo"] %>
(no controller)
var post = PostDao.BuscarPorSlug(slug); ViewData["corpo"] = post.corpo;
(na minha classe de dados "PostDao")
public static post BuscarPorSlug(string slug) { return (from p in DataContext.Db.posts where p.slug.Equals(slug) select p).FirstOrDefault(); }
Só lembrando que tudo funciona perfeitamente, o único problema é que as tags de paragrafo(p e br) somem do meu texto.
-
Guilherme não sei então o que está acontecendo, usei o ViewData em um teste aqui, e funcionou perfeitamente. A única coisa que me vem a cabeça é você verificar se o banco realmente contém as tags e se elas estão bem formatadas (abrindo e fechando corretamente).
- Sugerido como Resposta Murilo Amaru Gomes terça-feira, 3 de agosto de 2010 18:40
-
Foi justamente o que eu fiz e verifiquei que ao invez de retornar as tag P e BR estava retornando "\r\n" então fiz o seguinteProblema Resolvido!
public static string TratarParagrafos(this string corpo) { var partes = corpo.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); var corpoTratado = new StringBuilder(); foreach (var parte in partes) { if (parte.StartsWith("<")) { corpoTratado.Append(parte); continue; } corpoTratado.Append("<p>" + parte + "</p>"); } return corpoTratado.ToString(); }
- Sugerido como Resposta Murilo Amaru Gomes terça-feira, 3 de agosto de 2010 18:40
- Marcado como Resposta Guilherme Vinicius quinta-feira, 5 de agosto de 2010 15:22
-
estou passando o meu texto em um viewdata
(na view)
<%= ViewData["corpo"] %>
(no controller)
var post = PostDao.BuscarPorSlug(slug); ViewData["corpo"] = post.corpo;
(na minha classe de dados "PostDao")
public static post BuscarPorSlug(string slug) { return (from p in DataContext.Db.posts where p.slug.Equals(slug) select p).FirstOrDefault(); }
Só lembrando que tudo funciona perfeitamente, o único problema é que as tags de paragrafo(p e br) somem do meu texto.
Como o murilo mensionou, o viewdata funciona normalmente sem remover usar a tecnica de trocar os caracteres "perigosos" pelos codigos HTML.Algum tratamento deve está acontecendo na sua aplicação, seja no banco, na inserção.
Faça como ele disse, verifique se no seu banco está salvo o html mesmo.
Depois faça o teste na marra inserindo o dado estáticamente:
ViewData["corpo"] = @"<h1>Ola</h1><br /><span style='color:Red'>Ola</span><br /><small>Ola</small>";
Contato:albertim_brasil@hotmail.com - Se ajudei, marca como útil.
Twitter: Me siga!!
Blog:http://dotnettime.spaces.live.com/- Sugerido como Resposta Murilo Amaru Gomes terça-feira, 3 de agosto de 2010 18:40
- Marcado como Resposta Guilherme Vinicius terça-feira, 3 de agosto de 2010 20:02
- Não Marcado como Resposta Guilherme Vinicius quinta-feira, 5 de agosto de 2010 15:22