2008-11-17 14 views
10

Jaki jest sposób oddzielania podziałów linii i spacji w polu tekstowym MultiLine lub obszarze tekstu HTML podczas wstawiania bazy danych (Asp.Net). Na przykład, co należy zrobić, jeśli chcę wstawićPodział wierszy w obszarze TextBox lub Html

Witam

Świata

do bazy danych z końca wiersza? A także podczas wyświetlania co mam zrobić? Nie chcę używać do tego Edytora.


Ale problemem jest podział linii i przestrzeń. Teraz kiedy wstawić

Witam

Świat

lub hello world, jest on zapisany z tego samego znaku w bazie danych. Dlatego nie mogę ich rozdzielić i pokazywam Witaj świat, chociaż użytkownik używa podziałów linii, takich jak wyżej. Wartość pochodząca z obszaru TextBox lub html jest taka sama jak w przypadku podziału wiersza lub spacji.

Odpowiedz

15

Podziały linii powinny być zachowane do bazy danych. Po ponownym przejrzeniu informacji i wyświetleniu jako HTML wystarczy zastąpić podział wiersza (np. Environment.NewLine) za pomocą znacznika podziału wiersza (tj. < b r/>)

+1

Nie zapomnij Html.Encode(), potem zrobić Replace(), jeśli to treść przesłana przez użytkownika. – Dzejms

+0

Powinieneś używać HtmlEncode() * zawsze *, niezależnie od tego, czy zawartość jest dostępna dla użytkownika, czy nie. Wystarczy tylko przypadkowo wstawione '<' lub '' ', aby naprawdę zepsuć rzeczy. –

0

Zawsze przechowuję dane wprowadzane przez użytkownika w postaci, w jakiej się znajduje, ale zawsze trzeba być bardzo ostrożnym przy wyświetlaniu go ponownie pod numerem . Podziały linii są po prostu przypadkiem zastąpienia System.Environment.Newline z "< br/>". Nie jestem pewien, jaka jest najlepsza praktyka w celu zachowania innej białej przestrzeni, gdy jest ona renderowana jako HTML, byłoby interesujące usłyszeć, co robią inni.

0

Zachowanie białego spacji po renderowaniu w HTML jest najłatwiejsze poprzez przekształcenie go w kod HTML podmiot &nbsp;.

0

Trzeba zastąpić wszystkie wystąpienia vbCrLf (environment.newline) ze znacznikiem html [< br>]

i umożliwić wielokrotne spacje trzeba wymienić przestrzeń [& nbsp;]

To przekonwertuje twój zwykły test na "wystarczającą" zawartość html, aby można go było zobaczyć jako HTML (działa dla mnie we wprowadzanych sekcjach tekstu mojej strony internetowej).

Z moich tagów jest tylko tekst znajdujący się między [] i usuwa spacje. .. umieszczenie tekstu znacznika na stronie spowodowało wyświetlenie go jako html !!!!

1

Możesz użyć & # 10;

+0

Nie, nie możesz. Spacje są (przeważnie) ignorowane w HTML. Musi użyć rzeczywistej linii podziału formatowania, która jest '< br/>'. –

+0

Masz rację. Myślałem, że pyta o dodawanie podziałów linii do textarea. –

0

Jedyna sugestia powyżej, która zadziałała dla mnie to: <& # 1 0 ;> Używam pola tekstowego wygenerowanego przez Front Page działającego teraz na serwerze Linux.

Wielokrotne użycie ciągu nie spowoduje wielu podziałów wierszy, ale pojedyncza pozycja ciągu w nowej linii zapewnia podwójną linię odpowiednią dla nowego akapitu.

Przed przeniesieniem strony z serwera przy użyciu systemu operacyjnego Windows, udało mi się osiągnąć podział wiersza dwukrotnie "Wchodząc."

2

Kilka możliwości:
• Konwersja nowe linie do <br/>
• Umieścić tekst w <pre> bloku
• umieścić każdą linię we własnym <div> bloku

Pamiętaj, że wszystkie spacje (sp... , HT, LF, CR) jest ignorowany w HTML (przez większość czasu)

To, co przechowujesz w bazie danych, powinno być czystym tekstem znaków. Konwersja na odpowiedni HTML do wyświetlania wymaga r umieszczanie pewnych znaków w sekwencjach HTML.

5

< br /> nie działa dla mnie. (podczas przypisywania tekstu do texttekstu html)

\r\n zrobili.

1

Korzystanie z ostrzami (MVC3), aby wyświetlić lub zachować podziały wiersza przesunięte z mojego db, następujące prace:

@Html.Raw(text_to_display.Replace(Environment.NewLine, "<br/>")) 
Powiązane problemy