2016-03-15 75 views
1

我將一些HTML從layout.cshtml移到另一個文件(topnavigation.cshtml),並通過以下方式調用它:@ Display.TopNavigation();在這個新的形狀文件中,我怎樣才能獲得它導航區域的實際內容。我期望@Display(Model.Navigation)可以工作,但是在topnavigation.cshtml中導航爲空?以另一種形式呈現Model.Navigation

+0

@ Display.TopNavigation(NAV:Model.Navigation)或類似的規定應該工作 然後。在你的形狀內,你可以調用this.Model.Nav試。 – Xceno

+0

佈局和區域本身也是形狀,因此調整'Layout.cshtml'實際上就像覆蓋任何其他形狀的模板一樣。在'Layout.cshtml'裏面,'Model'指的是佈局形狀,其中包含導航區域,但在'topnavigation.cshtml'內部,它指向您的TopNavigation形狀,它不知道導航是什麼。 我認爲你想要做的是@Display(WorkContext.Layout.Navigation) – Lawyerson

回答

4

你是在一個不同的形狀 - 除非你設定Navigation屬性(例如,通過調用@Display.TopNavigation(Navigation: "something"))這將是空,預計

您可以通過Layout訪問根Layout形狀任何.cshtml文件。 。財產(或WorkContext.Layout - 都返回相同的對象),所以呈現的主導航是那樣簡單調用@Display(Layout.Navigation)