发布:2023/12/7 15:16:52作者:大数据 来源:大数据 浏览次数:515
为什么要使用及优点前后台分离
.net core新建一个项目,在controllers中新建一个contrllor时会添加最大与最小依赖,选择最大,添加成功后,即可在项目上添加区域了,如果没有添加依赖,那只能手动添加区域文件夹了。目录如下:
项目文件夹:Areas\Admin\Controllers|Views|Models
如果没有Areas时,contrllers中前后台会形如这样:NewsController|AdminNewsController;ProductController|AdminProductController
利用area可以进行分离。有的同学可能认为新建一个文件夹将两个分开写,这样确定可以,但如果controller名字一样的话,照样会冲突。
比如NewsController在controller下,在Admin文件夹中新建NewsController会得到路由错误。如果在Area/admin/controller下建NewsController这不会冲突。这个是优点,关注点分离。
另外需要在controller中加入area属性[Area("Admin")]小括号中的名称即areas中文件夹的名称,另外还需要在startup.cs中添加路由
app.UseMvc(routes =>
{
routes.MapRoute(
name : "areas",
template : "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
});
想在区域控制器省略[Area("Manage")]属性
2、通过配置MapRouteRoute
1 2 3 4 5 6 7 8 9 10 11 |
app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); routes.MapAreaRoute( "AreasManage", "Manage", "Manage/{controller=Home}/{action=Index}/{id?}"); }); |
在配置中直接指定区域名,这样就不需要在区域控制器中指明区域名了,直接这里配置好就访问正常了。
对此可进行扩展,将Manage在配置文件中定义,可实现动态区域area,具体应用在后面管理目录时,可隐藏实际区域名称
Configuration.GetSection("AdminPath").Value;
© Copyright 2014 - 2024 柏港建站平台 ejk5.com. 渝ICP备16000791号-4