C# 如何在Razor视图中声明字符串数组

C# 如何在Razor视图中声明字符串数组,c#,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,我正在尝试基于拆分字符串并将其存储在MVC Razor视图中的字符串数组中,我尝试如下: @{ string[] replies = !string.IsNullOrEmpty(messages.MessageReply) ? messages.MessageReply.Split(';') : new string []{}; } 但每当我写这篇文章时,它都会将字符串[]repress的最后一个}作为它的主要结束括号,而不是下面的括号。如何避免这种情况,或者如何在razor视图中声

我正在尝试基于
拆分
字符串
并将其存储在
MVC Razor视图中的
字符串数组中,我尝试如下:

@{
     string[] replies = !string.IsNullOrEmpty(messages.MessageReply) ? messages.MessageReply.Split(';') : new string []{};
}

但每当我写这篇文章时,它都会将字符串[]repress
的最后一个
}
作为它的主要结束括号,而不是下面的括号。如何避免这种情况,或者如何在razor视图中声明此类变量?

将条件表达式放在括号中:

string[] replies = (!string.IsNullOrEmpty(messages.MessageReply) ? messages.MessageReply.Split(';') : new string []{ });
string[] replies = !string.IsNullOrEmpty(messages.MessageReply) ? messages.MessageReply.Split(';') : new string [0];
或者。。。只要去掉括号:

string[] replies = (!string.IsNullOrEmpty(messages.MessageReply) ? messages.MessageReply.Split(';') : new string []{ });
string[] replies = !string.IsNullOrEmpty(messages.MessageReply) ? messages.MessageReply.Split(';') : new string [0];

它应该有助于将条件表达式压缩到括号中:

string[] replies = (!string.IsNullOrEmpty(messages.MessageReply) ? messages.MessageReply.Split(';') : new string []{ });
string[] replies = !string.IsNullOrEmpty(messages.MessageReply) ? messages.MessageReply.Split(';') : new string [0];
或者。。。只要去掉括号:

string[] replies = (!string.IsNullOrEmpty(messages.MessageReply) ? messages.MessageReply.Split(';') : new string []{ });
string[] replies = !string.IsNullOrEmpty(messages.MessageReply) ? messages.MessageReply.Split(';') : new string [0];

它应该有帮助

我想你可以使用:
string[0]
而不是
string[]{}

@{
     string[] replies = !string.IsNullOrEmpty(messages.MessageReply) ? messages.MessageReply.Split(';') : new string [0];
}

我想你可以用:
string[0]
代替
string[]{}

@{
     string[] replies = !string.IsNullOrEmpty(messages.MessageReply) ? messages.MessageReply.Split(';') : new string [0];
}

对我来说很好。但是这种代码应该在控制器中(并设置视图模型属性的值),而不是在viewSo@StephenMuecke中。。这在这里是不可能的?正如我所说的,你的代码工作得很好。您得到的错误是什么?从某种意义上讲,错误是将下一个
}
括号视为
{
的结束括号。就像我使用
messages.MessageReply.Split(new[]{';},StringSplitOptions.RemoveEmptyEntries)
它处理
}
内部
拆分
作为结束括号,因为它将以黄色突出显示..使用
.split(新[]{';}
对我也很好。我怀疑你的代码还有其他问题(如果你需要证明,我可以创建一个简单的DotNetFiddle)对我来说很好。但是那种代码应该在控制器中(并设置视图模型属性的值),而不是在viewSo@StephenMuecke中。这在这里是不可能的?正如我所指出的,您的代码工作正常。您得到的错误是什么?错误的含义是将下一个
}
括号视为
@{
的结束括号。就像我使用
messages.MessageReply.Split(new[]{';')一样,StringSplitOptions.RemoveEmptyEntries)
它将
}
内部
拆分
视为结束括号,因为它将以黄色突出显示..使用
.split(new[]{';')}
对我来说也很好。我怀疑你的代码还有其他问题(如果你需要证据,我可以创建一个简单的DotNetFiddle)如果我包含
messages.MessageReply.Split(新[]{';'),StringSplitOptions.removeMptyEntries)
,这将是一个问题。所以,您的代码中一定有其他问题。正如我所说,我已经检查了您的场景,它工作正常。如果我包含
messages.MessageReply.Split(新[]{';'),这将是一个问题,StringSplitOptions.RemoveEmptyEntries)
!!因此,您的代码中肯定存在其他问题。正如我所说,我已经检查了您的场景,它工作正常。