3

我有一根剃须刀绳

 @postername.Substring(0, @postername.IndexOf("@"))

如果用户名有电子邮件,我会在 @ 符号之前得到用户名,但如果用户名没有电子邮件,我想要整个单词,怎么办?

 if(@postername.Contains("@")){
             @postername.Substring(0, @postername.IndexOf("@"))
            }else{
            @postername
            }

但没有用,请帮忙

4

2 回答 2

10

如果您必须在视图级别执行此操作,请先将逻辑构建到变量中:

@{

 string posternameShort = postername;

 if(postername.Contains("@")){
     posternameShort = postername.Substring(0, postername.IndexOf("@"))
 }

}

然后调用新变量:

@posternameShort
于 2012-12-17T14:43:35.187 回答
0

为了进一步阐明这一点,Razor 函数(出现在 和 之间的代码块中{}完全支持 C# 代码。此外,还支持 Visual Basic 代码

这很强大。在 C# 或 Visual Basic 中发生的任何字符串操作也可在 Razor 代码中使用。

更多信息可在此处此处获得。

Curt 的回复概述了执行此操作的基本方法,但我认为解释“如何”背后的“为什么”会很好,特别是因为我自己一直在研究如何使用 Razor 操作字符串。

于 2015-02-17T15:13:45.893 回答