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。