.net core 中的局部视图组件是viewcomponent,可以用于建制重复使用公共功能组件

一、新建一个类demoviewcomponent(必须以viewcomponent结尾)且继承viewcomponent

using microsoft.aspnetcore.mvc;
using netcoreapidemo.model;
using system;
using system.collections.generic;
using system.linq;
using system.threading;
using system.threading.tasks;

namespace netcoreportal.components
{
    public class demoviewcomponent : viewcomponent
    {
        public async task<iviewcomponentresult> invokeasync()
        {
            list<tbl_page> pagelist = new list<tbl_page>();
            for (int i = 0; i < 10; i++)
            {
                pagelist.add(new tbl_page()
                {
                    page_no = i.tostring(),
                    page_name = i.tostring()
                });
            }
            return view(pagelist);//此处没有返回viewname 对应的视图文件是default.cshtml
            //return view("d", pagelist);//此处返回的viewname 是“d” 对应的视图文件是d.cshtml
        }
    }
}

 

二、在view/share目录下建立components目录,并在此目录下建立demo目录及对应default.cshtml文件  

@model ienumerable<netcoreapidemo.model.tbl_page>
<h1>demo iviewcomponentresult</h1>
<table>
    <tr>
        <th>page_no</th>
        <th>page_name</th>
    </tr>
    @foreach (var item in model)
    {
        <tr>
            <td>@item.page_no</td>
            <td>@item.page_name</td>
        </tr>
    }
</table>