动态添加MVC4显示模式

时间:2013-02-06 17:12:43

标签: asp.net-mvc-4

Global.asax中,我想基于我拥有的字符串数组动态添加多种显示模式,因此:

foreach (string displayModeId in myDisplayModeIds)
{
    modes.Insert(0, new DefaultDisplayMode(displayModeId)
        {
            ContextCondition = context =>
                context.Request["DisplayMode"] == displayModeId
        }
    );
}

当然这不起作用,因为displayModeId必须是ContextCondition范围内的常量。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

你可以在一个闭包中捕获它,这样它就不会在循环中逃离你:

foreach (string displayModeId in myDisplayModeIds)
{
    string dmId = displayModeId;
    modes.Insert(0, new DefaultDisplayMode(displayModeId)
    {
        ContextCondition = context => context.Request["DisplayMode"] == dmId
    });
}