通过 URL 访问 ASP.NET 5 视图组件

Access ASP.NET 5 View Component via URL

ASP.NET 5 中的部分视图被替换为视图组件,如何通过 URL 访问视图组件?

我知道你这样称呼他们……

1
@Component.Invoke("SomeList", 1)

...但是如果你需要像 ajax 分页,你需要一个回调 url 来请求下一组显示在局部视图中怎么办?因此,用户可以单击"加载更多",它会从"部分视图"加载更多。


您不能直接从 URL 访问视图组件。视图组件只是视图的一个组件,该视图可以是常规视图或部分视图。

根据您的问题,我相信您正在尝试在呈现视图(具有视图组件)时默认显示第一页?我试着在这里放一些场景。

示例场景:
在显示可用职位列表的布局页面上显示一个片段。

用例:

  • 在服务器端渲染与作业列表相关的html:

  • 布局页面会有类似@Html.Partial("JobsListPartial") 的内容。
  • 这个 "JobsListPartial" 会有类似于 await @Component.InvokeAsync("JobsListViewComponent", pageNumber) 的内容。此部分视图还将 ajax 脚本发送到客户端,供用户浏览页面。
  • 在客户端,当用户尝试导航到不同的页面时,ajax 脚本会调用具有类似 IActionResult GetJobs(int pageNumber) 的 API 的 JobsController,并且此操作通过执行类似 return PartialView("JobsListPartial" 之类的操作返回 PartialViewResult ,页码)。
  • 仅在客户端渲染所有页面:

  • 创建一个局部视图(拥有您的 ajax 脚本)并呈现给客户端。
  • 创建一个公开 api 的控制器,用于在可用工作职位的页面中导航。
  • 从 ajax 脚本调用这个 api(返回 json)。
  • 使用 json 数据在客户端动态更改 UI。