我有一个名为BookingId
的剃刀合并域。
可以将BookingId命名为:CCFM384-3049
,RJDd3248-34
或EVO-23804f-fgg3
如果BookingId包含单词EVO,我必须打印第一个表行,如果BookingId不包含EVO,我必须打印第二个表行。
我正在使用BookingId进行测试:EVO-23804f-fgg3。但我还是得到了第二张桌子。我的代码在这里有什么问题?
@if ((new List<string> { "EVO" }).Contains(Model.Order.EvoBookingId))
{
<!-- First tablerow -->
<tr>
<th class="small-12 large-6 columns first">
<table>
<tr>
<th width="300">
<p class="text-left small-text-left"><strong>EVO:</strong></p>
</th>
</tr>
</table>
</th>
<th class="small-12 large-6 columns last">
<table>
<tr>
<th width="300">
<p class="text-left small-text-left">
This table contains EVO
</p>
</th>
<th class="expander"></th>
</tr>
</table>
</th>
</tr>
}
else
{
<!-- Second tablerow -->
<tr>
<th class="small-12 large-6 columns first">
<table>
<tr>
<th width="300">
<p class="text-left small-text-left"><strong>EVO:</strong></p>
</th>
</tr>
</table>
</th>
<th class="small-12 large-6 columns last">
<table>
<tr>
<th width="300">
<p class="text-left small-text-left">
<br /><br />
This table does not contains EVO
</p>
</th>
<th class="expander"></th>
</tr>
</table>
</th>
</tr>
}
答案 0 :(得分:1)
你有List.Contains(string)
,这意味着如果任何列表元素在这种情况下是“EVO”,它将返回true。那不是你想要的。您希望您的字符串包含“EVO”,因此正确的方法是:
如果您想在字符串中的任何位置匹配EVO
Model.Order.EvoBookingId.Contains("EVO")
如果您希望检查不区分大小写
Model.Order.EvoBookingId.Contains("EVO", StringComparison.OrdinalIgnoreCase)
如果您只想匹配开头(因为您的示例就是这种情况)
Model.Order.EvoBookingId.StartsWith("EVO")
或
Model.Order.EvoBookingId.StartsWith("EVO", StringComparison.OrdinalIgnoreCase)