2016-03-15 79 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)