如何将视图中的“RenderBody”和“RenderBody”内容作为单独的“标题”和“页脚”文件提供?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将视图中的“RenderBody”和“RenderBody”内容作为单独的“标题”和“页脚”文件提供?相关的知识,希望对你有一定的参考价值。
注意:我在发布此问题之前找到了解决方案,因此我将使用我的解决方案回复自己。
我有一个.NET MVC网站,它使用层次结构中设置的视图,通过Section和RenderSection将数据相互传递。我有一个名为“Master”的顶级视图,其中有几个视图继承自它。
我有两个不同的外部应用程序,我需要能够动态导入MVC网站的“外部模板”作为单独的页眉和页脚文件,对应于顶层视图“RenderBody”行上方和下方的代码,分别。
如何设置以便我可以在MVC应用程序中保留我的分层视图结构,并将这些单独的页眉和页脚代码文件提供给外部应用程序?
我已经尝试将RenderBody上方和下方的Master.cshtml代码移动到页眉和页脚部分视图中,目的是在Master.cshtml中使用这些部分视图,以及打算供外部使用的新Header.cshtml和Footer.cshtml文件应用。问题是我没有找到一种方法来使用与Master.cshtml代码混合的RenderSection行。
这是我找到的解决方案:
在Master.cshtml中:
ViewDataDictionary globalHeaderData = new ViewDataDictionary {
{"sectionName1", RenderSection("sectionName1", false)},
{"sectionName2", RenderSection("sectionName2", false)},
};
ViewDataDictionary globalFooterData = new ViewDataDictionary {
{"sectionName3", RenderSection("sectionName3", false)},
{"sectionName4", RenderSection("sectionName4", false)},
};
@Html.Partial("GlobalHeader", Model, globalHeaderData)
@RenderBody()
@Html.Partial("GlobalFooter", Model, globalFooterData)
然后在GlobalHeader和GlobalFooter中,用以下代码替换每个RenderSection行:
@ViewData["theSectionName"]
而已!
以上是关于如何将视图中的“RenderBody”和“RenderBody”内容作为单独的“标题”和“页脚”文件提供?的主要内容,如果未能解决你的问题,请参考以下文章