Asp.net 剃刀串操作
我有一根剃须刀线Asp.net 剃刀串操作,asp.net,razor,Asp.net,Razor,我有一根剃须刀线 @postername.Substring(0, @postername.IndexOf("@")) 如果用户名有电子邮件,我会在@sign之前得到用户名,但是如果用户名没有电子邮件,我想得到整个单词,怎么办 if(@postername.Contains("@")){ @postername.Substring(0, @postername.IndexOf("@")) }else{ @poster
@postername.Substring(0, @postername.IndexOf("@"))
如果用户名有电子邮件,我会在@sign之前得到用户名,但是如果用户名没有电子邮件,我想得到整个单词,怎么办
if(@postername.Contains("@")){
@postername.Substring(0, @postername.IndexOf("@"))
}else{
@postername
}
但不起作用,请帮助如果必须在视图级别执行此操作,请先将逻辑构建到变量中:
@{
string posternameShort = postername;
if(postername.Contains("@")){
posternameShort = postername.Substring(0, postername.IndexOf("@"))
}
}
然后调用新变量:
@posternameShort
为了进一步阐明这一点,Razor函数(出现在
{
和}
之间的代码块中)。此外,还有
这是强大的。在C#或Visual Basic中发生的任何字符串操作也可以在Razor代码中使用
更多关于此的信息,请访问
概述了执行此操作的基本方法,但我认为最好解释“如何”后面的“为什么”,特别是因为我自己一直在研究如何使用Razor操作字符串。我们可以在您的视图中看到围绕这行代码的代码吗?定义“不起作用”。是否有错误?什么是输入,什么是输出?另外,您真的需要代码中的所有
@
s吗?也许我弄错了,但我认为代码的开头应该是@
(比如,在if
之前),然后它就变成了一个代码块。并不是所有的变量都使用它。老实说,这并不是你应该强行进入你的视图的逻辑。在发送之前,我会在您的ViewModel或controller中执行此操作。错误是“/”应用程序中的服务器错误。长度不能小于零。参数名称:长度