如何格式化字符串以删除某些字符(.NET Razor)?

时间:2013-11-13 21:49:34

标签: c# asp.net .net razor

对我很轻松 - 我是.NET新手......我需要知道如何使用“/ About-Us”之类的字符串并将其变成“关于我们”。我在这里发现了一些问题,我认为可以回答这个问题,但我不明白我需要回答哪部分答案。

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

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

@CurrentPage

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

2 个答案:

答案 0 :(得分:6)

您必须将其分配回变量:

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

或链式:

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

两个输出:

  

关于我们

来自MSDN

  

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

答案 1 :(得分:3)

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

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

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

有关字符串不变性的详细信息,请参阅here