我正在尝试创建一个换行符,并且已经在其他论坛上看过了,有些论坛使用'\n','\r '或Environment.NewLine,但我个人没有任何效果。我给你代码和结果:
第一章:
string n1 = SomeText;
string n2 = AnotherText;
string beforeStr = n1 + Environment.NewLine + n2;
二:
string n1 = SomeText;
string n2 = AnotherText;
string beforeStr = n1 + '\r' + n2;
第三章:
string n1 = SomeText;
string n2 = AnotherText;
string beforeStr = n1 + '\n' + n2;
总是相同的结果:
SomeText AnotherText
8条答案
按热度按时间4smxwvx51#
MarkupString解决方案将吞下/解释所有未转义的html字符。这可能导致使用动态用户输入字符串的XSS攻击。
这里的方法是先进行html-escape,然后将所有换行符替换为
正则表达式
\r?\n|\r
将替换\r (old Mac)
、\r\n (Windows)
和\n (Unix)
这也可以作为组件实现。
现在,它更易于与
<MultilineString Value=@yourInput />
配合使用xmq68pz92#
我能想到的唯一方法是使用Razor模板。\r\n、Envirnoment.Newline和其他任何东西都不能使编译器改变。
下面是使用Razor模板的工作解决方案:
更新:您还可以使用此:
更新2:根据文件:
渲染原始HTMLBlazor通常使用DOM文本节点渲染字符串,这意味着它们可能包含的任何标记都将被忽略,并被视为文本。这个新特性允许您渲染特殊的MarkupString值,这些值将被解析为HTML或SVG,然后插入DOM。
警告:呈现从任何不可信来源构造的原始HTML是一个重大的安全风险!
使用MarkupString类型添加静态HTML内容块。
z3yyvxxp3#
浏览器中的文档结构将采用HTML格式,因此您需要使用HTML标记(特别是
<br />
)来控制文档流。正如Panagiotis Kanavos所提到的,并且可能因为使用Blazor,所以在
.razor
组件中可能会出现如下内容:2eafrhcq4#
我创建了一个简单的组件LineBreaksToBRs,它避免了MarkupString的风险。
和用法
inkz8wg95#
这就是我要做的。在我的剃刀档案里,我加了一句:
在我的C#类中,我添加了以下内容:
只要用你需要的每一行文本填写参考,它就会工作得很好。我发现了很多其他的解决方案,但这对我来说是最简单的。
abithluo6#
这对我很有效
am46iovg7#
我不太擅长html,这是我用来创建新行的,可能有更好的方法,但这对我很有效:
空行的另一种方法是:
pexxcrt28#
CSS有一个非常简单的解决方案: