簡體   English   中英

從中獲取文本時保持換行<textarea>

[英]Keep linebreaks when getting text from <textarea>

我正在使用帶有C#和HTML的Visual Web Developer構建網站。

我有一個頁面,用戶可以在該頁面上使用textarea標簽編寫有關我的網站的反饋,然后提交(在textarea中,他們可以在任何地方進行換行)。

問題是,當我取回他們寫的文字時,它沒有換行符,例如:

如果用戶寫道:

"Hello, my name is
Omer N."    

當我找回它時,它將看起來像這樣:“您好,我叫OmerN。”。

我該如何解決這個問題?

取決於您如何存儲值。 請記住,遵循空格規則的HTML和來自字段的常規輸入,它將截斷/壓縮空格為單個實體。

So "Wide      String" = "Wide String" and:

"Multi-line
string
here" will be truncated to "Multi-line string here" as you have experienced.

這是默認行為。

因此,要保持換行,間隔等。您需要先對其進行轉義編碼解碼過程,然后再存儲。

解釋如下:

Web開發的許多新手無法理解為什么在呈現文本時,從文本區域或文本文件,Excel電子表格等輸入的數據中回車的原因並沒有出現。

一旦新用戶意識到網頁只是瀏覽器對html標記的解釋,並且html中的新行由表示,則解決方案就相當明顯了。
標簽。 因此,需要的是一種將回車符或換行符與
標簽。 好吧,實際上是一種替換()它們的方法。

<%# Eval("MyMultiLineValue").ToString().Replace(<linebreak>,"<br />") %>

string.Replace()方法允許這樣做,但我們還需要確定要用html標記替換的內容。 如何用C#或VB.Net表示換行?

在C#中,它是“ \\ r \\ n”,而在VB.Net中,它是vbcrlf。 但是,還有一個獨立於語言的選項可以完成相同的操作:Environment.NewLine。

<%# Eval("MyMultiLineValue").ToString().Replace(Environment.NewLine,"<br />") %>

希望這可以幫助! :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM