我有一个TextArea,用户可以在其中编写一些文本。当我尝试使用LabelFor显示文本时,我收到“非法字符”错误,因为字符串对于每个新行都有“\ r \ n”。
我试过使用这个解决方案:
Show new lines from text area in ASP.NET MVC
和
if (q.help_text != null)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.IO.StringReader sr = new System.IO.StringReader(q.help_text);
string tmpS = null;
do
{
tmpS = sr.ReadLine();
if (tmpS != null)
{
sb.Append(tmpS);
sb.Append("<br />");
}
} while (tmpS != null);
var convertedString = sb.ToString();
qvm.HelpText = convertedString;
}
else
qvm.HelpText = q.help_text;
LabelFor也不输出新行,而是输出br代码。 我该如何解决这个问题?
修改
解决方案是这样做:
@ Html.Raw( “” + question.HelpText +”
答案 0 :(得分:3)
这是因为LabelFor是HTML编码文本。这样做是为了避免跨站点脚本问题。您可以做的是使用pre
标记来原样呈现文本区域字符串(使用\ r \ n)
答案 1 :(得分:0)
将此语法用于LabelFor
@Html.Raw(Html.LabelFor(x => x.Name))