获取MVC 4使用的DisplayMode后缀

时间:2013-09-27 20:08:00

标签: asp.net asp.net-mvc asp.net-mvc-4

使用ASP.NET MVC 4我将显示模式后缀设置为“CAT”:

        DisplayModeProvider.Instance.Modes.Insert(1, new DefaultDisplayMode("CAT")
        {
            ContextCondition = (ctx => some condition)
        });

在子控制器中我需要知道它运行的后缀是什么,基本上是“CAT”

    [ChildActionOnly]
    public ActionResult MainMenu(){
           var cat = getthesuffix() ??????
    } 

1 个答案:

答案 0 :(得分:2)

我用Google搜索了一个解决方案。

“EnumDisplayModeProvider”是我自己设置网站的各种模式的枚举。

 public EnumDisplayModeProvider GetDisplayModeId()
    {
        foreach (var mode in DisplayModeProvider.Instance.Modes)
            if (mode.CanHandleContext(HttpContext))
            {
                EnumDisplayModeProvider modeProvider = EnumDisplayModeProvider.generic;
                var id=mode.DisplayModeId;
                Enum.TryParse(id, true, out modeProvider);
                return modeProvider;
            }

        throw new Exception("No display mode");
    }