2011-05-19 94 views
77

我正在開發一個ASP.NET MVC 3應用程序,其內容頁面具有佈局元素的通用模式。但是,由於登錄頁面沒有遵循此佈局,因此我無法將此佈局放置在\Views\Shared\_Layout.cshtml中。調用@ Html.Partial以顯示屬於不同控制器的局部視圖

所以我想添加另一個共享佈局,比如\Views\Shared\_Content.cshtml,並從內容視圖中調用它......但不幸的是,這些視圖屬於不同的控制器。

有什麼辦法可以調用@Html.Partial來查看屬於不同控制器的視圖嗎?

+0

有人可以有勇氣降低我愚蠢的問題嗎?我自己做不到。 – pyon 2018-03-01 18:55:29

+0

你應該可以投票結束自己的問題。 https://meta.stackexchange.com/questions/163375/vote-to-close-own-question – 2018-03-01 20:02:49

回答

139

這沒問題。

@Html.Partial("../Controller/View", model) 

@Html.Partial("~/Views/Controller/View.cshtml", model) 

應該做的伎倆。

如果你想通過(其他)控制器,你可以使用:

@Html.Action("action", "controller", parameters) 

或任何其他重載

+8

爲什麼@ Html.Partial(「〜Views/Controller/View」,model)需要.cshtml擴展名?否則,它說沒有找到視圖。 – ashes999 2011-05-22 12:05:36

+2

Resharper 6.1標誌'@ Html.Partial(「../ Controller/View」,model)'作爲錯誤,而不是'@ Html.Partial(「〜/ Views/Controller/View.cshtml」,model)'。在運行時都可以正常工作。 – 2012-05-09 17:15:10

+0

@GVs如果windows使用\作爲目錄,那你爲什麼使用/。任何原因 – Adrian 2013-06-07 11:13:41

6

由於GVS說的,但我也覺得有用使用strongly typed views這樣我就可以寫出類似

@Html.Partial(MVC.Student.Index(), model) 

沒有魔法字符串。

+11

隨着Resharper,他們不覺得像魔術弦了:) – 2013-05-15 08:57:27

相關問題