通过URL访问ASP.NET 5 View Component

Qua*_*int 5 asp.net-core-mvc asp.net-core

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

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

@Component.Invoke("SomeList", 1)
Run Code Online (Sandbox Code Playgroud)

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

Kir*_*lla 6

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

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

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

使用案例:

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

    1. 布局页面将具有类似@ Html.Partial("JobsListPartial")的内容.
    2. 这个"JobsListPartial"会有类似await @ Component.InvokeAsync("JobsListViewComponent",pageNumber).此部分视图还将ajax脚本发送到客户端,供用户浏览页面.
    3. 在当用户尝试导航到不同的网页客户端,AJAX脚本进行调用到JobsController有类似的API IActionResult GetJobs(INT PAGENUMBER)这个动作返回PartialViewResult做喜欢的事,回报PartialView("JobsListPartial",PAGENUMBER ).
  • 仅在客户端呈现所有页面:

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