如何在asp.net c#html中的文本之间显示空格

时间:2011-03-29 09:53:45

标签: c# asp.net html spaces

我有一个奇怪的问题,我正在从数据库直接获取数据到数据源。数据在带有链接按钮的转发器中绑定。

我遇到的问题是数据库中的数据可能在字符串的中间有多个空格,但是当显示在前端时,只显示空间。在考虑它之后,这是删除空格的标准HTML行为,我会假设asp.net会通过网页的呈现来处理这个问题。还发生的事情是,当报告导出到excel时,它只有1个空格而不是2个。

示例:

2个空格:“南非 - 开普敦”
单一空间:“南非 - 开普敦”

这是一个不相关的例子,但我的数据真正用于多个空格。

2 个答案:

答案 0 :(得分:7)

您可以使用 替换空格,如下所示:

string result = myString.Replace(" ", " ");

这会产生HTML:

"South Africa  -  Cape Town"

使用两个空格正确渲染。

答案 1 :(得分:1)

结束执行以下操作:

    Regex spaceRegex = new Regex("\\s{2,}");

    //Only replace subsequent spaces, not all spaces. For example, 
    //"   " (three spaces) becomes "   " (1 space, 2 non-breaking spaces).
    MatchEvaluator matchEvaluator = delegate(Match match)
    {
        StringBuilder spaceStringBuilder = new StringBuilder(" ");
        for (int i = 0; i < match.Value.Length - 1; i++)
        {
            spaceStringBuilder.Append("&nbsp;");
        }
        return spaceStringBuilder.ToString();
    };

    return spaceRegex.Replace(server.HtmlEncode(value), matchEvaluator);
}