2013-04-08 22 views
4

我有一個很奇怪的問題。更糟糕的是,它只發生在生產(天藍色)中,而不是在開發機器中。MVC 4 Mobile Detection不一樣的視圖,因爲它是佈局

我看到我的應用程序使用.Mobile版本的佈局,但使用桌面(不是.mobile)版本的視圖。我完全失去了如何我甚至可以解決這個問題..

它正在檢測移動版本,但它不是...任何想法?

+0

也,它不僅會在主頁上的類..所有其它頁面使用的視圖的。移動版本時,它應該。 – 2013-04-08 16:05:15

+0

我有這個問題。我的登臺機器將移動視圖呈現爲默認路由/,但是prod機器不會。不過,我可以瀏覽到/ home,它會起作用。重新啓動prod修復它[一段時間]。 – kiwipom 2013-04-14 19:41:11

+0

我訴諸寫了一個if,然後在控制器中做它應該做的移動視圖。解決方法,但我還沒有解決原來的問題。 – 2013-04-15 03:12:30

回答

0

該引擎使用這裏的文件 - C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers

(或者\Framework64\

他們可能要麼機器上的不同。使用Request.Browser.IsMobileDevice來找出哪些設備檢測到什麼。也編寫自定​​義顯示模式可以幫助嗎?

http://weblogs.asp.net/gunnarpeipman/archive/2011/09/18/asp-net-mvc-4-display-modes.aspx

+0

這是有趣的原因我上面提到的解決方法使用Request.Browser.IsMobileDevice手動把正確的看法..所以...這不是問題:) – 2013-04-15 23:22:04

+0

你檢查了兩臺服務器上的瀏覽器文件?你嘗試過自定義顯示模式嗎?如果不是,那麼「這不是問題」根本就沒有意義。 – LiverpoolsNumber9 2013-04-16 10:54:02

0

我想我下面給的解決方案就是答案(它的工作對一個短暫的瞬間),但經過一段時間它仍保持切換到錯誤的觀點。

喜歡上網的休息,我安裝51 Degrees from Nuget 這是工作完美,很容易建立


(以下不爲我工作,但也許它爲你) http://www.nuget.org/packages/Microsoft.AspNet.Mvc.FixedDisplayModes

看起來它是一個已知的bug:http://aspnetwebstack.codeplex.com/workitem/280?PendingVoteId=280

根據CodePlex網站的鏈接上面,記得要確保這個:

對於一個小的一套定製註冊視圖 引擎的列表(例如,在Global.asax中)的項目,你應該確保你 所引用Microsoft.Web.Mvc.FixedRazorViewEngine或 微軟。 Web.Mvc.FixedWebFormViewEngine的而不是 船在覈心運行時二進制