【问题标题】:Unable to get newline character to render on aspx page无法获取换行符以在 aspx 页面上呈现
【发布时间】:2013-02-13 19:12:43
【问题描述】:

我正在共享点 aspx 页面上进行一些服务器端验证。如果有任何错误,我将一个字符串传递给 PreRender 中的 zone.error 文本。

如何让我的换行符呈现?

现在我有:

    protected override void OnPreRender(EventArgs e)
    {
        if (!string.IsNullOrEmpty(_errorText))
        {
            this.Zone.ErrorText += "I'm an error!" + Environment.NewLine + "Fix me damnit!";                
        }
        base.OnPreRender(e);
    }

我尝试了各种组合


,\r\n,\n,同时使用 htmlEncode 和 htmlDecode 无济于事。

我过去读过一些关于

 的内容,但我不确定这是否是正确的方法。 

这里有什么诀窍?

【问题讨论】:

  • 可以把它扔到一个文本框里面或者在html中使用一个换行符
    元素
  • 你试过<br />吗?

标签: c# asp.net html .net


【解决方案1】:

您将需要呈现一个<br/> 标记而不是Environment.NewLine,它只会将\n 或\r\n 放入其中。不会在HTML 页面上呈现。

protected override void OnPreRender(EventArgs e)
    {
        if (!string.IsNullOrEmpty(_errorText))
        {
            this.Zone.ErrorText += "I'm an error<br/>Fix me damnit!";                
        }
        base.OnPreRender(e);
    }

【讨论】:

  • 这似乎不起作用。它使用实体代码呈现
    。看起来它首先对字符串执行 httpUtility.htmlDecode 。有没有办法解决这个问题?
  • @Ray 如果无法配置显示 html 的控件,那么我认为您无能为力。
  • @Ray 我假设您只是在标签中显示此内容或将其直接写入页面。如果不是 System Down 可能是正确的。
【解决方案2】:

尝试使用标签

<br>

而不是 Environment.NewLine

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多