从List打印错误的表行

时间:2017-03-22 14:44:15

标签: c# razor

我有一个名为BookingId的剃刀合并域。

可以将BookingId命名为:CCFM384-3049RJDd3248-34EVO-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>
}

1 个答案:

答案 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)