您可以訪問靜態變量替換風景。有三種方法:
1)由於Ant P建議,在視圖中包含using語句。鑑於GlobalVariables
類的命名空間是AppName.GlobalVariables
:
@using AppName.GlobalVariables
<html>
<div ><h1 style="color:@GlobalVariables.SystemColor">System Color</h1></div>
</html>
2)另一種方法是直接使用的命名空間中的線,你要訪問的變量:
<div ><h1 style="color:@AppName.GlobalVariables.SystemColor">System Color</h1></div>
3 )最後,您可以將所需的名稱空間添加到Views文件夾下的web.config文件中:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.Optimization" />
<add namespace="AppName.GlobalVariables" />
</namespaces>
</pages>
</system.web.webPages.razor>
至於變量在模型中堅持並將它傳遞給視圖從那裏......的確符合MVC模式,並確保的擔憂和所有善良的分離。但在我看來,在某些情況下,「堅持模式」被拿到了荒謬的層面。在你的情況下,我只是從視圖中訪問這個變量。
所以你不應該因爲符合MVC模式?主要原因是什麼? – ChaoticLoki
據我所知,只要用'@ using'包含類的命名空間,就可以在視圖中使用靜態變量。不過,你不應該這樣做。 –
好吧,這很有道理,即使我沒有傳遞視圖模型,我也不想爲所有事情創建視圖模型。例如,我有一個客戶列表,剛剛通過了一個客戶模型列表。 – ChaoticLoki