当前位置 : 主页 > 网络编程 > ASP >

[ASP.NET MVC]如何设定Area底下的页面为起始页(网址路由Routing)

来源:互联网 收集:自由互联 发布时间:2021-06-24
[ASP.NET MVC]如何设定Area底下的页面为起始页(网址路由Routing) 今天突然收到朋友的Line : 你知道怎么把MVC Routing设定为Area底下的页面吗? 当下很帅气的回复:在Global底下Application Start里的R

[ASP.NET MVC]如何设定Area底下的页面为起始页(网址路由Routing)


今天突然收到朋友的Line : 你知道怎么把MVC Routing设定为Area底下的页面吗?

当下很帅气的回复:在Global底下Application Start里的Routing设定就好了阿(烟)

但其实这是很不负责的答案阿XDD 回家到电脑旁赶紧试一下!

首先要先浅谈一下MVC的Area

在开发较大型的MVC网站中,通常会进行模块化的规划,如一直在同一个Controller数据夹底下新增会越来越庞大

另一个问题就是Controller不允许有相同命名的存在,偏偏模块中常有父子关系,有时子模块命名相同就会造成错误

为了区别而去修改命名又不是一个好架构,以上种种因素都会造成维护上的困难

故我们通常会在项目底下加入Area,每个Area底下又会有独自的MVC数据夹,Area通常会看公司&网站的属性去规划

以我前公司的经验,因是内部系统,故我们会By部门去切割Area,当然电子商务网站,就可考虑By功能性

Area规划及使用方式,可参考以下文章:

[MVC]项目客制化方式

使用Areas分离ASP.NET MVC项目(前后台以及对应功能模块)

切割Area后但存在相同命名Controller依然出错可参考此篇

设定MVC的Routing

以下在项目新增一个SurveyArea,并新增一个Hello的Controller,在产生一个Index的View

再来我们执行网站,该页面的网纸就会如下:

http://localhost:9937/SurveyArea/Hello/index

http://localhost:9937/Area/Controller/View

那要怎么让使用者打http://localhost:9937/就能进到此页面呢

这都定义在Global.asax里面RouteConfig的静态类

进入RouteConfig,会发现默认会是以下的Code

可看到Routing默认对应的Controller、action、Get参数

MVC会逐笔去对应Contorller,并产生以上的网址

但这种方式是不会去扫Area底下的,故我们要指定Area让他去抓底下的Contorller

Done!!

原文:大专栏  [ASP.NET MVC]如何设定Area底下的页面为起始页(网址路由Routing)

网友评论