通过URL访问ASP.NET 5 View Component

时间:2015-06-01 20:51:55

标签: asp.net-core asp.net-core-mvc

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

我知道你称他们为......

@Component.Invoke("SomeList", 1)

...但是如果你需要像ajax分页那样你需要一个回调url来请求下一组在局部视图中显示呢?因此,用户可以单击“加载更多”并从“部分视图”加载更多内容。

1 个答案:

答案 0 :(得分:6)

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

根据您的问题,我相信您在呈现视图(具有视图组件)时默认显示第一页?我试图在这里提出一些方案。

示例方案:
在布局页面上显示一个片段,其中显示可用作业位置列表。

使用案例:

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

    1. 布局页面的内容类似于 @ Html.Partial(" JobsListPartial")
    2. 这" JobsListPartial"会有类似 await @ Component.InvokeAsync(" JobsListViewComponent",pageNumber)的东西。此部分视图还将ajax脚本发送到客户端,供用户浏览页面。
    3. 在客户端尝试导航到其他页面时,ajax脚本调用 JobsController ,其中包含 IActionResult GetJobs(int pageNumber)等api,此操作通过执行类似返回PartialView(" JobsListPartial",pageNumber)之类的操作返回 PartialViewResult
  • 仅在客户端渲染所有页面:

    1. 创建部分视图(具有您的ajax脚本)并呈现给客户端。
    2. 创建一个控制器,公开api,以便通过可用作业位置的页面进行导航。
    3. 从ajax脚本中调用此api(返回json)。
    4. 使用json数据动态更改客户端的UI。