2011-10-11 994 views
6

大家好,我正在使用MVC 3(Razor)。我有以下問題:如何使用Html.Partial()方法以顯式路徑渲染局部視圖

我有一些共同的內容分隔成部分視圖。但不是把它放在默認位置(views/sharedviews/controller-name),我需要把它放在不同的位置(views/shared/new-folderview/controller-name/new-folder)。

我試過這個:@Html.Partial("views/shared/new-folder/partial-view-name")甚至@Html.Partial("views/shared/new-folder/partial-view-name.cshtml"),但似乎MVC3只考慮參數作爲視圖名稱,它完全忽略任何路徑信息。

也許我做錯了什麼,有人可以幫我嗎?:)非常感謝!

+1

這裏是同樣的問題 [http://stackoverflow.com/questions/7640790/how-does-renderpartial-figure-out-where-to-find-a-view/7641165#7641165] [ 1] [1]:http://stackoverflow.com/questions/7640790/how-does-renderpartial-figure-out-where-to-find-a-view/7641165#7641165 – zdrsh

回答

16

您需要使用應用程序虛擬路徑(在路徑的開始注意到~\)參考:

@Html.Partial("~\\views\\shared\\new-folder\\partial-view-name.cshtml") 
+0

謝謝!它的作品!! ~~ – NextStep

1

如果您還配置了行動回報是局部視圖,你也可以這樣做:

@{ Html.RenderAction("PartialViewAction", "PartialViewCOntroller");}

這可能是更好,因爲你不應該硬編碼引用您的代碼視圖。在不同服務器上部署硬編碼引用可能會中斷應用程序,但調用操作返回視圖不會。