C#如何优先考虑多种显示模式?

时间:2017-07-11 10:03:41

标签: c# asp.net-mvc

我处于适用多种显示模式的情况。 类似的东西:

DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("a")
{
    ContextCondition = context => AFunctionThatReturnsTrue()
});

DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("b")
{
    ContextCondition = context => ADifferentFunctionThatReturnsTrue()
});

我所经历的是,在这种情况下,总是显示模式" b"被申请;被应用。 问题是:为了拥有显示模式" a"选择了吗?

我尝试过但没有工作过:

  • 我试图改变注册顺序。

  • 我尝试更改显示模式的名称,以便显示模式" b"按字母顺序排列" a"。

1 个答案:

答案 0 :(得分:0)

您可以通过设置正确的索引来确定其优先级:

DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("a")
{
    ContextCondition = context => AFunctionThatReturnsTrue()
});

DisplayModeProvider.Instance.Modes.Insert(1, new DefaultDisplayMode("b")
{
    ContextCondition = context => ADifferentFunctionThatReturnsTrue()
});

这应该确保在 B 之前提供模式 A ,即使两个条件都满足。

修改 这没有任何官方文档的支持,但我在我的项目中尝试了它并且它有效。