Asp.Net Core MVC利用视图组件和JQuery动态加载列表

首先我们先创建视图组件的视图模型,在项目根目录下面创建ViewModels文件夹,该文件夹为项目的视图模型文件夹,然后在视图模型文件夹(ViewModels)下面创建PostListModel模型类,代码内容为

    public class PostListModel
    {
        public IList<string> Post { get; set; }
    }

然后手动创建视图组件的cshtml文件(视图)所在的文件夹。在项目根目录Views下面的Shared文件夹,新建Components文件夹。

我们要创建的名为PostList的视图组件,所以在刚才创建的Components文件夹下面创建PostList文件夹,然后在PostList文件夹下面创建Default.cshtml文件。

Default.cshtml文件的内容为

@using WebApplication2.ViewModels;
@model PostListModel
<h2>发帖列表</h2>
@foreach(string item in Model.Post)
{
    <h3>帖子标题:@item</h3>
}

然后我们来创建视图组件的组件控制器文件夹,在项目的根目录下面创建ViewComponents文件夹。

我们在组件控制器文件夹新建PostList组件类

 

 public class PostList : ViewComponent
    {
        public async Task<IViewComponentResult> InvokeAsync(string Id)
        {
            if(Id.IndexOf("aa") >= 0)
            {
                PostListModel model = new PostListModel();
                model.Post = new List<string> {
                    "帖子标题1",
                    "帖子标题2",
                    "帖子标题3",
                    "帖子标题4",
                    "帖子标题5"
                };
                return View(model);
            }
            return View();
        }
    }

在Blog控制器中添加名为GetPostList的Action

        public IActionResult GetPostList()
        {
            return ViewComponent("PostList", new { Id = "aa"});
        }

然后在Blog首页添加如下代码

<div class="post-list"></div>
<button class="get-post" type="button">Click!</button>

然后在首页添加如下JQuery特效代码

<script type="text/javascript">
    var url = '/Blog/GetPostList';
    $('.get-post').click(
        function ()
        { 
            $('.post-list').load(url);
        }
    );
</script>

点击首页的Click!按键,及可自动加载列表,如下图







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赫敏璋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值