已知Asp.Net MVC返回PartialView方法,.NET Core 2 RazorPage中如何实现?
在.NET Core 2 Razor Pages中返回分部视图的实现方法
嘿,这个问题我刚好熟!在ASP.NET Core 2的Razor Pages里,要实现类似MVC中return PartialView("ModelName", Model);的功能,思路和MVC一致,但写法上有一点点适配Razor Pages的调整,主要是通过返回PartialViewResult来实现,我给你拆解几种常用的写法:
基础用法:直接返回分部视图
在你的PageModel类的处理方法(比如OnGetXXX或OnPostXXX这类handler方法)中,你可以这样写:
public IActionResult OnGetLoadPartial() { // 先准备好要传递给分部视图的模型数据 var partialModel = new YourPartialViewModel { // 填充模型属性,比如: Title = "这是分部视图的标题", Content = "分部视图的内容内容..." }; // 方式一:手动构建PartialViewResult返回 return new PartialViewResult { ViewName = "_YourPartialView", // 你的分部视图名称,通常下划线开头是约定 ViewData = new ViewDataDictionary<YourPartialViewModel>(ViewData, partialModel) }; // 方式二:更简洁的写法(推荐) // return Partial("_YourPartialView", partialModel); }
关键细节说明
- 视图查找规则:如果你的分部视图和当前Page在同一个文件夹下,直接写视图名称即可;如果放在
Shared文件夹里,框架也会自动找到它,不用额外指定路径。 - 避免渲染布局:记得在你的分部视图顶部加上
@{ Layout = null; },这样就不会把整个页面的布局也渲染进去,保证只返回分部视图的内容。 - 异步场景适配:如果你的数据加载是异步的,只需要把方法改成异步签名,处理完数据后返回即可:
public async Task<IActionResult> OnGetLoadPartialAsync() { var partialModel = await YourDataService.GetPartialDataAsync(); return Partial("_YourPartialView", partialModel); }
和MVC写法的对比
你在MVC里用的return PartialView("ModelName", Model);,对应到Razor Pages就是上面的return Partial("视图名称", 模型);或者手动构建PartialViewResult,核心逻辑都是指定视图名称并传递模型,只是Razor Pages里的PageModel用Partial方法来简化操作。
内容的提问来源于stack exchange,提问作者TechFisher
相关产品推荐
相关产品推荐

