3

对我放轻松-我是.NET的新手...我需要知道如何获取像“/About-Us”这样的字符串并将其转换为“About Us”。我在这里找到了我认为可以回答这个问题的问题,但我不明白我需要将答案的哪一部分应用于我的情况。

我正在尝试执行以下操作:

@{
    var CurrentPage = Request.Path;
    CurrentPage.Replace("-", " ");
    CurrentPage.Replace("/", "");
}

@CurrentPage

由于 Request.Path 的输出是“/About-Us”,我认为 .Replace 会将“-”变成空格,并删除“/”。完成这种转换的最佳方法是什么?

4

2 回答 2

6

您必须将其分配回变量:

var CurrentPage =  "/About-Us";
CurrentPage = CurrentPage.Replace("-", " ");
CurrentPage = CurrentPage.Replace("/", "");
Console.WriteLine (CurrentPage);

或链式:

CurrentPage = CurrentPage.Replace("-", " ").Replace("/", "");

两个输出:

关于我们

来自MSDN

返回一个字符串,其中当前实例中出现的所有指定字符串都替换为另一个指定字符串。

于 2013-11-13T21:51:45.283 回答
3

问题是 .NET 中的字符串是不可变对象,也就是说,它们的值不能更改。相反,当您执行操作字符串值的操作时,它将改为返回一个新字符串。如果您查看该Replace方法,它的返回类型为字符串。

解决方案是分配调用的结果Replace

@{
    var CurrentPage = Request.Path;
    CurrentPage = CurrentPage.Replace("-", " ");
    CurrentPage = CurrentPage.Replace("/", "");
}
@CurrentPage

有关字符串不变性的更多详细信息,请参见此处

于 2013-11-13T21:54:42.690 回答