首页 新闻 会员 周边 捐助

asp.net core的MVC自定义组件如何在页面实现异步加载

0
[已解决问题] 解决于 2019-07-12 14:29

我想要的效果是,整个页面先呈现出来,自定义的组件随后异步加载呈现出来。比如做电商网站,旁边有些小控件,如“猜你喜欢”,这个需要查询数据库和计算,比较耗时,如何能不阻塞页面的整体加载速度,自己在一边慢慢加载都行。
我用了@await Component.InvokeAsync("Menu"),感觉还是同步的,等这个加载完了才会执行后面的代码。

破天长云的主页 破天长云 | 初学一级 | 园豆:21
提问于:2019-07-11 11:38
< >
分享
最佳答案
1

ajax 是唯一的出路

奖励园豆:5
dudu | 高人七级 |园豆:29732 | 2019-07-11 11:41

额,那不就和MVC4一样的了,以前项目MVC4的,我就是用ajax实现分部视图异步加载,但是比较麻烦。我以为core里用async就可以很简单的实现这个效果。
那我想问下ViewComponent不能直接用ajax请求到吧,那怎么实现好呢?

破天长云 | 园豆:21 (初学一级) | 2019-07-11 11:45

@破天长云: 可以 ajax 请求到,但需要通过一个 Action 返回

public IActionResult PostList([FromBody]AggSiteModel model)
{
    return ViewComponent(typeof(Components.AggSite.PostList), new { model });
}
dudu | 园豆:29732 (高人七级) | 2019-07-11 13:37
其他回答(1)
0

都已经NET CORE了,你居然还在用自定义组件,现在不是应该前后端分离了吗?
前端交给Angular /Vue /React 去处理,你想多异步就有多异步。

爱编程的大叔 | 园豆:30844 (高人七级) | 2019-07-11 11:58

。。。大叔说的是也

支持(0) 反对(0) 破天长云 | 园豆:21 (初学一级) | 2019-07-11 12:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册