如何在 Razor 页面中使用 MVC 部分视图和布局
Posted
技术标签:
【中文标题】如何在 Razor 页面中使用 MVC 部分视图和布局【英文标题】:How can I use MVC partial views and layouts inRazor Pages 【发布时间】:2020-12-14 07:48:48 【问题描述】:这可能吗? 我的大部分网络应用程序都在 MVC 中。 但我将设置一个技术角,我只想转到简单的 Razor 页面,而不是设置复杂的端点以在 StartUp 中到达那里。
似乎页面会更好地组织简单的页面,例如:
articles/AspNetCore3 -- 列出相关文章
articles/AspNetCore3/WhatsNew -- 在此处设置文章
articles/AspNetCore3/Blazor -- 在此处讨论这项新技术
articles/Azure/Overview -- 这些类型的 URL 很简单 内容,但 Razor 页面已准备好在需要时添加功能
【问题讨论】:
【参考方案1】:您可以使用@RenderPage("_MenubarPage.cshtml");
。
您还可以使用@RenderPage("_MenuPage.cshtml", MyModel)
,它允许您通过将任何您喜欢的模型作为第二个参数提供给视图。
如果您使用的是部分,您也可以使用@Html.RenderPartial("_articles/AspNetCore3/WhatsNew");
。但别忘了,你需要用剃刀代码块@
包装它
文件路径可能会有所不同,具体取决于您从哪里渲染 Partial。
关于使用 Layout 页面,您只需在 cshtml 页面顶部说明您想要的 Layout。下面的例子:
@page
@model Project.Pages.ProjectModel
@
ViewData["Title"] = "Test Page";
Layout = "~/Pages/Shared/_Layout.cshtml";
您还可以使用 <partial>
标记在 .NETCore 3.1 中呈现部分内容。下面的例子:
<partial name="Shared/_ProductPartial.cshtml" for="Product">
标签助手是 .NET Core 中的新 事物。为了向后兼容,HTML 标记助手仍然存在。
部分标签上的 Microsoft Docs 位于 here
【讨论】:
我可以使用以上是关于如何在 Razor 页面中使用 MVC 部分视图和布局的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 jquery 或 ajax 在 c#/asp.net 中为 MVC 项目更新 razor 部分视图
mvc3中关于Razor视图中的及页面区别,以及在啥情况下用哪个页面,最好能有实例。
.NET Core - 为啥我应该使用视图组件而不是集成在 MVC 应用程序或 Razor 页面中的 Blazor 组件