.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>
黄山市民网:https://www.huangshanshimin.com/