有没有办法在输出到标签时保留格式?
我有一些用户输入,我将其输出到标签。
我使用了 HTML.Encode 来以用户输入的方式显示输入(忽略 html 标签)。
但是,我注意到标签中没有使用像换行符这样的用户输入。它只是显示为空白。
我已经完成了此操作
msg.Text = msg.Text.Replace(Environment.NewLine, "<br />");
,现在似乎显示了正确的输入。
这是最好的方法吗?或者是否有一种通用方法可以将 newLines、制表符等所有不可见的格式化内容转换为 HTML 标签?
I have some user input that I am outputting to a label.
I have used HTML.Encode in order to show the input in the way the user entered it (ignoring as a html tag).
However, I have noticed that the user input like New Line are not using in the label. It's simply displayed as white space.
I've done this
msg.Text = msg.Text.Replace(Environment.NewLine, "<br />");
which seems to now be displaying the right input.
Is that the best way to do this? Or is there like a common method that can convert newLines, tabs, etc. all of the invisible formatting things into HTML tags?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不知道还有什么其他办法。我通常做的(如果你有一个“\n”或“\r\n”组合)是首先替换所有“\r\n”,然后最后替换任何单个“\n”。
对于制表符,您可以使用 4 个不间断空格。:
要保留任何间距(因为 html 会将多个连续空格聚合为一个空格),请使用:
请记住在添加像
这样的标记之前先对文本进行编码。您有意要渲染的内容。
如果您想使用原始回车符显示信息而不需要插入标记,您还可以使用 TextBox,将其 MultiLine 属性设置为“true”,并将 Enabled 设置为“false”。我认为标签是最好的选择。
I don't know of any other way. What I usually do (in case you have a single "\n" or a "\r\n" combo) is replace all "\r\n" first, then any single "\n" last.
For tabs you can use 4 non-breaking spaces.:
To preserve any spacing (as html will aggregate multiple continuous spaces into a single space) use:
Remember to Encode your text first before adding in markup like <br /> that you intentionally want to render.
You could also use a TextBox, set it's MultiLine property to "true" and Enabled to "false" if you want to display the information with the original carriage returns without resorting to inserting markup. I think the label is the best choice though.
如果可能,只需使用多行文本框而不是标签。
If possible, just use a Multiline Textbox instead of label.