2012-10-31 36 views
1

假設下面的自定義模式提供商:獲取當前顯示模式

DisplayModeProvider.Instance.Modes.Insert(1, new DefaultDisplayMode("CustomMode") 
{ 
ContextCondition = //some bool logic 
}); 

我怎樣才能從我的代碼當前顯示模式?

+0

「顯示模式」是什麼意思?屏幕尺寸? – ivowiblo

+0

@ivowiblo請參閱http://www.sitepoint.com/asp-net-mvc-4-developer-preview-display-modes/ – Emil

回答

-1

按照文檔,當前顯示模式後綴將是用戶代理。你可以從HttpContext.Current.Request.UserAgent

得到它爲了獲得DISPLAYMODE對象,你可以這樣做:

var currentMode = DisplayModeProvider.Instance.Modes.SingleOrDefault(x => x.DisplayModeId == HttpContext.Current.Request.UserAgent); 

希望它能幫助。

+0

如果模式不基於用戶代理,該怎麼辦? – Emil

+0

在您提供的鏈接中:「基本上,顯示模式會檢查用戶代理,如果它找到匹配的後綴,它將顯示它找到的與後綴匹配的任何視圖,後綴是傳遞給DefaultDisplayMode方法的參數。 「 – ivowiblo

+0

顯示模式不綁定到用戶代理。這只是一個可以測量的選項,可將顯示模式分配給請求。其他選項是用戶登錄或缺少,Cookie設置爲保存用戶的首選顯示等。 – TheZenker