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

C# 如何格式化字符串以删除某些字符(.NET)?,c#,asp.net,.net,razor,C#,Asp.net,.net,Razor,对我放松点-我是.NET的新手。。。我需要知道如何将“/关于我们”这样的字符串转换成“关于我们”。我在这里发现了一些问题,我认为这些问题可能会回答这个问题,但我不明白我需要将答案的哪一部分应用于我的情况 我正在努力做到以下几点: @{ var CurrentPage = Request.Path; CurrentPage.Replace("-", " "); CurrentPage.Replace("/", ""); } @CurrentPage 由于Request.

对我放松点-我是.NET的新手。。。我需要知道如何将“/关于我们”这样的字符串转换成“关于我们”。我在这里发现了一些问题,我认为这些问题可能会回答这个问题,但我不明白我需要将答案的哪一部分应用于我的情况

我正在努力做到以下几点:

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

@CurrentPage

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

您必须将其重新分配给变量:

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

CurrentPage = CurrentPage.Replace("-", " ").Replace("/", "");
两种输出:

关于我们

发件人:

返回一个新的字符串,在该字符串中,当前实例中指定字符串的所有匹配项都替换为另一个指定字符串


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

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

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

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

我建议不要将页面标题与url路由绑定。此代码用于将菜单项标记为活动:)这是一个很好的建议。。。我可能会也可能不会使用这种方法。我只是在玩弄.NET。我建议设置每个控制器的标题,可能在ctor中,或者使用路线/标题地图结构。谢谢!我想这就是我一开始想要输入的。我生锈了…我用CurrentPage=CurrentPage.Replace(“-”,”).Replace(“/”,”);