2013-02-13 32 views
0

我有一個MCV應用程序。我有一個工作副本,運行在我的本地PC上,一個坐在我的應用程序服務器上的生產副本。爲了快速測試小版本,我希望辦公室另一端的用戶在更新服務器上的文件之前訪問我的本地副本。但我不希望用戶能夠將mypc/myapp與myserver/mypp混淆。要做到這一點,我想也許我有一些配置的地方說:如果託管在「myserver」上,背景顏色是黑色的;其他背景顏色是紅色的,或者什麼的。ASP Web應用程序有可能具有不同的後臺顏色,具體取決於哪個服務器主機應用程序

這是可能的,以及如何?

回答

2

有很多方法可以做到這一點。

最快和最簡單的方法就是在您的web.config中有一個關鍵字,它在生產服務器上設置爲true。

<appSettings> 
<add key="production" value="true" /> 
</appSettings> 

添加一個新的CSS類樣式表爲您的發展背景顏色

.development-bg { 
background-color: #FF49F2; 
} 

然後在你_Layout.cshtml的頂部(假設您正在使用Razor視圖引擎)

@{  
    if(System.Configuration.ConfigurationManager.AppSettings["production"] != "true") 
    { 
     ViewBag.BackgroundColorCssClass = "development-bg"; 
    } 
} 

然後修改body標籤在你_Layout.cshtml

<body class="@ViewBag.BackgroundColorCssClass"> 

另外,如果你不希望有一個web.config值,你可以試試下面的

@{ 
    if(HttpContext.Current.Server.MachineName == "your machine name") 
    { 
     ViewBag.BackgroundColorCssClass = "development-bg";  
    } 
} 

就像我說的有很多方法可以做到這一點。這種方式非常簡單,但可能適合您的需求。

+0

謝謝,裏克 - 看起來像一個不錯的解決方案。正如它發生的情況,我也在更新期間複製我的web.config - 我希望在這裏的一件事是找到一個解決方案,在複製到實時服務器時不必更改任何配置(您總是忘記做這些事情,那麼你的用戶最終會有一個可怕的,醜陋的紅色背景)。如果你可以用另一種方式在我身上做,它會非常感激。我的第一個想法是與URL和某種「if(urlString.Contains(serverName))」評估有關? – Hanshan 2013-02-14 00:26:09

+1

我已經更新了我的答案:) – 2013-02-14 00:42:28

+0

精美的作品 - 謝謝,Rik! – Hanshan 2013-02-14 01:00:58

相關問題