2014-02-28 41 views
0

在MVC4中,我試圖展示一個適合最終用戶訪問它的環境的View。我通過訪問user agent字符串並返回相關View來實現此目的。在沒有代碼複製的情況下爲同一頁面使用多個視圖

控制器:

string userAgent = Request.UserAgent.ToLower(); 
if (userAgent.Contains("ipad")) 
{ 
    viewPath = "~/Views/Home/Index.Ipad.cshtml"; 
} 
else if (userAgent.Contains("android")) 
{ 
    viewPath = "~/Views/Home/Index.Android.cshtml"; 
} 
else 
{ 
    viewPath = "~/Views/Home/Index.cshtml"; 
} 

而Android和iPad Views不會有重大分歧,meerly小的調整,以考慮呈現差異。主要的Index.cshtml將包含桌面屏幕允許的更多數據。

這將導致大量的代碼複製。一個更改需要複製三個Views。有沒有更容易/更好的方法來做到這一點?

回答

1

使用部分視圖來處理公共區域的內容將會有所幫助,因爲在視圖本身內部的變化將有助於緩解這種情況。

如果可能的話,應該在CSS中處理渲染差異,以減少對任何定製的需求。

相關問題