【问题标题】:Kentico - Transformation Eval() & trailing space at the endKentico - 转换 Eval() 和末尾的尾随空格
【发布时间】:2016-09-16 17:25:59
【问题描述】:

这一定是有史以来最简单的问题,但同样,我不知道答案。我刚刚注意到(在我的情况下)使用类似 Eval("Location") 的东西总是在输出末尾创建一个尾随空格。通常我不关心那个尾随空格,但在一种特殊情况下,它必须被删除。我试过使用 replace() 但它只适用于文本本身而不是尾随空格,例如“旧金山”变成“旧金山”,但尾随空格仍然存在。请让我知道如何摆脱它。我检查了我的文字,最后没有空格。

Eval("Location").ToString().Replace(" ","")

【问题讨论】:

    标签: kentico


    【解决方案1】:

    您正在寻找的函数是 .Trim() ,它将从字符串中删除尾随和前导空格。所以你可以使用

    Eval("Location").ToString().Trim()
    

    但是,如果使用 .Replace() 没有删除该尾随空格,那么我会说该空格不是来自字段本身,而是来自转换中它之后的某些内容。

    如果您的代码是这样的: "<%#Eval("Location").ToString().Trim()%> [other content]" 那么该字段内容和其余内容之间总会有一个空格。也许在评估该字段后检查转换并查看是否有空格?

    【讨论】:

    • 实际上,我确实尝试了 Trim() 和 Replace()。看起来那个空格不是字符串的一部分
    • 既然你提到了[其他内容],虽然我没有,但它有所帮助。我在一行上测试了 ,然后中间没有空格 - 最后没有尾随空格。但是如果 下一行 ,则两者的末尾都有一个尾随空格。输入代码的系统或者那个窗口一定是加了它,奇怪的是它这样做了。
    • 请将您的转换代码粘贴到示例中,以帮助我们找出语法中的任何缺陷。
    • @probrandono - 修剪功能从字符串中删除所有前导和尾随出现的字符。我们都有分别的 TrimStart 和 TrimEnd 方法。
    • 使用ToStringEval<string>小心。如果您的字段(在本例中为 Location)包含 NULL,如果您尝试 Trim 它,您将获得空引用异常。最安全的方法是使用ValidationHelper.GetString(Eval("Location"), "")
    【解决方案2】:

    正如 Brandon 已经提到的,您正在寻找的函数是 .Trim() 虽然这仅适用于字符串。因此,如果它不起作用,您很可能需要使用以下方法之一将该对象转换为字符串:

    ValidationHelper.GetString(Eval("Location"), "").Trim()
    Eval<string>("Location").Trim()

    【讨论】:

    • 谢谢。我认为这不是字符串,而是系统。您可以快速测试执行 之类的操作。您会看到系统在输出中添加了一个空格,就像您的 2 eval() 之间的空格一样。就我而言,我对 2 eval() 使用了硬返回/下一行,并且空间也在那里。我认为它应该像常规文本编辑器一样,您的空间不会转换为输出中的空间。请测试并让我知道 - 只是为了我的理智:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    • 2015-07-06
    相关资源
    最近更新 更多