2012-07-20 147 views
0

我有一個佈局頁面,它在我的應用程序中的所有視圖之間共享。該視圖在我的應用中引用了.css。爲了參考起見,我現在有我的_layout.cshtml文件的頂部如下:在ASP.NET MVC 3中使用虛擬路徑

<link rel="stylesheet" href="/css/themes/default/app.css" /> 

我服用這個程序並加載到通過PhoneGap的一個手機應用程序規劃。因此,我不能使用/css/themes/default.app.css。相反,我需要將它轉換爲相對於文件路徑的字符串。例如,我需要動態生成如下所示的值:

<link rel="stylesheet" href="../../../css/themes/default/app.css" /> 

「../」的數量將根據它的深度確定。我認爲會有一個實用程序或內置於ASP.NET MVC 3框架中的內容來執行此操作。但是,我找不到任何東西。我有很多文件,我不想手動更新所有的url模式。是否有一個實用程序會自動處理我想要實現的功能?如果是這樣,怎麼樣?

謝謝

回答

1

使用UrlHelper.Content HTML輔助方法。

此方法將虛擬(相對)路徑轉換爲應用程序絕對路徑。

<link href="@Url.Content("~/css/themes/default/app.css")" 
             rel="stylesheet" type="text/css" />  

您可能會降低你的css文件夾中的MVC項目的根

+0

當我使用Url.Content,其轉換「〜/ CSS /主題Content目錄下的/默認/ app.css 「到」/css/themes/default/app.css「。我需要的是像「../../css/themes/default/app.css」 – 2012-07-20 18:48:49

+0

這些文件在你的根之外? – Shyju 2012-07-20 18:52:03

+0

我想我不確定。 MVC中的整個路由選擇經常讓我困惑。我會說,我有我的css目錄在MVC.csproj /資源和我的cshtml文件在MVC.csproj /視圖 – 2012-07-20 19:07:51