Декодирование экранированных HTML-данных с помощью новых строк с использованием C # - PullRequest
0 голосов
/ 10 ноября 2010

Я использую jquery ajax для отправки данных с <textarea name="comments">. на сервер, где данные будут храниться в базе данных SQL.

Если TextBox содержит
Линия1
Линия2
Линия3,

Следующая строка передается на сервер comments=Line1%0ALine2%0ALine3 (данные, закодированные с использованием функции javascript escape).

Однако я не могу разобрать это на сервере (используя C #) Я попробовал эти подходы, и ни один из них не сработал.
(Request.Form["comments"]).Replace("\r\n","<br/>");
(Server.UrlDecode(Request.Form["comments"])).Replace("\r\n","<br/>");

Все предложения приветствуются. Я не знаю, где я напортачу (на стороне клиента или на стороне сервера), но это не работает. Конечная цель - сохранить данные в базе данных SQL Server для последующего извлечения.

Спасибо за помощь!

Ответы [ 3 ]

1 голос
/ 10 ноября 2010

поэтому, основываясь на ответах Mud, вам потребуется

(Request.Form["comments"]).Replace("\n","<br/>");

, но было бы лучше, если бы вы сделали

(Request.Form["comments"]).Replace("\r", "").Replace("\n","<br/>");
1 голос
/ 10 ноября 2010

Отредактировано в ответ на ваши изменения:

% 0A - это \ n, а не \ r \ n

"\ r \ n" - это два отдельных символа (ASCII 0xD и 0xA).

Изменить Replace("\r\n") на Replace("\n").

0 голосов
/ 10 ноября 2010

Microsoft.JScript.unescape является точным эквивалентом. См. этот пост для подробностей.

...